我有一个系统,有两种类型的用户(公司和个人)。所有类型都有一组共享属性,但它们在另一个不同。什么是最好的设计合并在一张表中允许空值为不匹配的属性,或者将它们分成两个与一对一关系的基本表相关的表中。 谢谢。数据库设计
Q
数据库设计
0
A
回答
3
性能方面,这是一个折衷的问题。
从另一个表中选择属性将需要额外的JOIN
(这对性能不利),但保持主表更小(这对性能有好处)。
JOIN
是一个相当昂贵的操作,所以除非你有像这样的属性200
(这会增加很多表),你最好把它们放在一张表中。
然而,分开表格会使您的CHECK
和NOT NULL
约束变得更加简单。
3
为了获得更好的性能,请为两者使用一个表,为不同属性允许空值并添加类型属性。
一对一关系(等同于OO世界中的子类化)将使您的架构更易维护,更易于理解,但会涉及性能问题。选择你的药丸。
相关问题
- 1. 数据库设计
- 2. 数据库设计
- 3. 数据库设计
- 4. 数据库设计
- 5. 设计数据库
- 6. 设计数据库
- 7. 数据库设计
- 8. 数据库设计
- 9. 库存数据库设计
- 10. 数据库设计中的外键 - 数据库设计
- 11. 数据库设计(Big Table)
- 12. 帮助数据库设计
- 13. 数据库设计难点
- 14. 设计一个数据库
- 15. 数据库设计(DDL)
- 16. 关于设计数据库
- 17. 数据库设计问题
- 18. 数据库设计问题
- 19. 数据库设计问题
- 20. 数据库设计问题
- 21. 数据库表设计
- 22. Mysql - 数据库设计
- 23. MySQL数据库设计
- 24. 数据库设计项目
- 25. 数据库表设计
- 26. Mysql数据库设计
- 27. 数据库设计 - 建议
- 28. 发票数据库设计
- 29. 最佳数据库设计
- 30. 饮料数据库设计
使用共享属性和指向具有唯一属性的两个独立表的链接来构建基表。这将遵循我认为的正常化进程。 – Lazarus 2010-05-06 11:54:22
不同领域的数量是多少? – DForck42 2010-05-07 15:25:20