将数据合并到一列中是错误的吗?

时间:2016-05-20 17:30:41

标签: sql sql-server database

假设您需要在编辑器应用中使用宽度和高度,将它们作为字符串(JSON让我们说)在一个列中是错误的吗?

字符串值如下所示: {宽度:100,高度:100}

宽度和高度都不会在UI中单独显示或编辑,也不能按任何一种进行排序或过滤。

这是不对的,我是否对此过于疯狂,我应该只有两个单独的栏目? 一般来说,这是一种不好的做法吗?

4 个答案:

答案 0 :(得分:5)

是的,这是不好的做法。让数据库执行它设计的目的,即存储原始数据。您如何解释或查看数据取决于您的应用程序/报告/等。

答案 1 :(得分:1)

您认为现在不需要过滤,但经验表明最终您需要过滤。在一个字段中存储多条信息是一种不好的做法。这违反了第一种正常形式的数据库设计,是数据库设计中最简单,最基本的规则。

答案 2 :(得分:1)

除了在同一属性中存储街道号码和街道名称违反第一范式之外,必然违反第一范式。普通表单是基于您对数据施加的规则的规则。 Codd博士在发明规则时对你的数据一无所知。如果你“保证”永远不会出于任何原因拆分字段,那么按照你的定义,字段是原子的,你可以实现第一个普通形式。

答案 3 :(得分:0)

是的,它的错误原因会违反第一范式

  

每个属性的域只包含原子(不可分割)值,每个属性的值只包含该域中的一个值。