25
A
回答
26
是的。确保您没有孤儿(没有父母的条目),并根据使用情况,如果您定义级联删除,则在删除父母时,其所有孩子也将被删除。
与其他外键一样,缺点是轻微的性能下降。
4
是的,你应该把它作为一个外键。
好处将是一个更好的冗余数据模型。
13
是的,你应该。如果在数据库关系中有一个属性作为同一数据库中另一个关系的主键,则应将其设置为FK。
您将享受advantages associated to foreign keys:
- 假设关系的合理设计,外键约束变得更加困难了程序员不一致性引入数据库。
- 集中数据库服务器对这些约束的检查使得不必在应用程序端执行这些检查。这消除了不同的应用程序可能不以相同的方式检查约束的可能性。
- 使用级联更新和删除可以简化应用程序代码。
- 正确设计的外键规则有助于记录表之间的关系。
缺点:
- 如果定义外键,有时是很难进行批量操作。
- 也许它意味着更多的磁盘使用和轻微的性能影响。
5
是的,你应该。
优势(如任何外键):
- 确保PARENT_ID引用表中的一个真正的行
- 防止有孩子,或确保删除级联删除父的意外删除孩子们也
- 提供信息的优化器可以使用
我想不出任何真正的缺点。
相关问题
- 1. 该表应该自引用吗?
- 2. Django会自动为外键列生成索引吗?
- 3. 我应该在postgresql 9.3中使用散列或btree作为外键索引吗?
- 4. 我应该真的使用外键吗?
- 5. 我应该索引一个外键?我应该使用这张表的主键吗?
- 6. 我应该为每个外键创建索引吗?
- 7. 应该添加使用日期和外键的标识列吗?
- 8. 我应该使用外键连接这3个表吗?
- 9. 你应该在Python中使用属性引用吗?
- 10. 自引用外键
- 11. 如何在该表中使表的属性成为外键?
- 12. 不应该django待办事项列表示例使用外键自我?
- 13. 我应该使用SQL Server关键字作为列名吗?
- 14. 外键可以引用多个表吗?
- 15. XNA/DirectX:你应该总是使用索引吗?
- 16. MySQL:使用引用由外键组成的主键的外键创建表
- 17. 我应该使用列表吗?
- 18. 引用的外键具有错误的列号。应该是2
- 19. 我应该避免使用主键并使用索引唯一的列吗?
- 20. MySQL外键:我应该设置它吗?
- 21. 即使使用slf4j,你应该保护你的日志吗?
- 22. 你应该索引一个多对多的表吗?
- 23. 引用自己的表的外键?
- 24. 我应该使用外键或不
- 25. Django自引用外键
- 26. 该表应该分成两部分吗?
- 27. 应该使用基本关键字吗?
- 28. MySQL表。我应该使用交叉引用表吗?
- 29. 你应该遮蔽你的依赖吗?
- 30. 我应该使用外键的外键还是字符串值?
“无子孤儿”? ;-) – Yarik 2008-11-15 20:23:06