数据库设计 - 两个相等对象的属性

时间:2015-03-12 12:26:00

标签: mysql database database-design

  1. 在我的数据库中有一个表&t't_object'和一个表&#t; t_search_object'。这两个表非常相似。

    这两个表都有一列名为' properties'以逗号分隔存储属性的地方,例如:" 1,4,8"。

    这就是为什么还有一个名为' t_object_properties'有两列(id,name)和数据记录,如:(1,propertie1)......

    有一个列'属性的问题'还有一个表,就是我在一列中有几个值。

    所以我想知道这是否是设计数据库的好方法..?

  2. 我在想是否有更好的列,例如' is_propertie1',' is_propertie2'等等,这两个表格中都有' t_object'和&#t; search_object'?如果要添加另一个属性,问题是更新两个表。

  3. 那你会建议什么? 1)或2)还是有另一种方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

在MySQL(和所有RDBMS系统)中有一个额外的表而不是以逗号分隔的值列表来表示像对象属性这样的一对多关系,这一点总是明智的。关系数据管理是围绕这个概念设计的。阅读“规范化”。

逗号分隔的值列表和长列列表都会导致真正的性能和可用性问题,尤其是当您的数据库变大时。

选择第一个选项,删除包含值为'1,4,8'的值列表的属性列,并且不要回头。