数据库设计略有不同的对象

时间:2011-11-22 21:23:32

标签: mysql database-design

设计具有共享某些列的对象类型的数据库的最佳方法是什么?但是还有一些列?

拥有1个共享数据表,并让每个类型都有自己的表

  

[objects] o_id | o_name | object_type的

     

[object_type_1] o_t_id | o_id | option1 |选项2

     

[object_type_2] o_t_id | o_id | option3 |选项4

OR 拥有1个表中的所有列并且有很多NULL

  

[objects] o_id | o_name | object_type | option1 |选项2 | 2选项   |选项4

2 个答案:

答案 0 :(得分:0)

这是一个常见问题。没有单一的最佳解决方案。你必须根据你的模型权衡每种方法的优缺点。

看看你的选择:

对于您的额外属性,另一种方法是EAV。这有一些严重的好处,但也有一些巨大的缺点,所以在认为它是“银弹”之前是明智的:

答案 1 :(得分:0)

这可能取决于表格的用途。你在创建事实表吗?交互表?各种查找表?

以下是database normalization上简单教程的链接:

http://www.phlonx.com/resources/nf3/

你能告诉我们更多有关桌子结构的信息吗?这些表的增长预测是什么?

根据您的目的,有可能使用方法1,而在另一种方法中,方法2可能会有用......