在插入数据库之前或之后格式化数据?

mpe*_*pen 1 database formatting

我无法决定在将数据插入数据库之前格式化数据,还是将其拉出时更好.

我不是在谈论数据清理; 我们都知道要防止SQL注入.我说的是,如果用户给你一个URL,并且它前面没有http://,你应该在插入数据库之前添加它还是将它拉出来?那些更复杂的事情,比如格式化一大堆文本.我想在之前或之后使用HTML标记(或将其删除)吗?如果我稍后改变主意并希望以不同方式格式化,该怎么办?如果我已经格式化它,我不能这样做,但是如果我将它存储为未格式化的话我就可以...但是每次我从数据库中提取一些数据时我都会做额外的工作,我可以完成一次并完成它.

你的想法是什么?


从答案中,似乎普遍认为URL,电话号码和电子邮件(任何具有明确定义格式的内容)之类的内容应首先标准化为一致的格式.像文本这样的东西通常应该是原始的或可操作的格式,以获得最大的灵活性.如果速度是个问题,则可以存储两种格式.

And*_*ite 11

我认为最好确保数据库中的数据尽可能采用最一致的格式.您可能有多个使用此数据的应用程序,因此如果您可以确保它们具有相同的格式,则无需担心在每个应用程序中重新格式化不同的格式.


Rob*_*Rob 6

在插入之前将URL规范化为规范形式可能没问题; 执行任何类型的广泛格式化,例如HTML转换/解析等都是一个坏主意 - 在数据库中始终拥有"最新"的数据,特别是如果您想稍后更改演示文稿格式.

在避免对每个查询进行不必要的后处理方面,您可能会考虑采用对象缓存或类似技术来处理更昂贵的操作.