mysql – Nullable外键与N:M关系的关系表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – Nullable外键与N:M关系的关系表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1204字,纯文字阅读大概需要2分钟。
内容图文
![mysql – Nullable外键与N:M关系的关系表](/upload/InfoBanner/zyjiaocheng/907/26e3c9b6b88d4495a6220d808b20e5e5.jpg)
我是一位存在怀疑的数据库设计师.
如果你有一个table1必须与table2或(独占或一个或另一个)table3有关系,
>哪种方法,为什么你会选择高读取性能?
知道可以为空的索引字段(选项A table1)是一个错误的决定(参见O’Reilly高性能MySQL第3章或第MySQL manual章),但也知道连接需要花时间执行(选项B)……
学术选择将是B,但我想要一个现实世界的解释,如果它真的更好的高性能与否.
提前致谢!!
解决方法:
避免可以为空的“外键”.它们有许多缺点.
当外键包含null时,并不总是强制执行对引用行的约束.但是,不同DBMS之间的默认行为不一致.某些DBMS支持配置选项以更改可以为空的外键的行为,而有些则不支持.因此,从数据完整性的角度来看,SQL开发人员和用户可能不清楚可以为空的外键约束实际意味着什么.使用相同产品在DBMS产品之间或甚至在不同服务器之间移植数据库可能会产生不一致的结果.
数据库设计工具,集成工具和其他软件并不总是正确地支持它们,它们产生的结果可能是错误的.
外键经常在连接和其他查询逻辑中使用,为那些认为约束有效的用户复杂化问题.
从逻辑上讲,可以为空的“外键”约束并没有太多的逻辑意义.根据SQL标准,即使被引用的表为空,也不会违反这样的约束.这与使用空的最常见的理由之一相矛盾 – 它代表了“未知”的情况.如果没有X的有效值,则任何“未知”X当然不能是有效值 – 而SQL将允许它.
这是不必要的.您始终可以构造表,以便不需要null.因此,为了简单和准确,最好不要使用空值而不是放入空值.
内容总结
以上是互联网集市为您收集整理的mysql – Nullable外键与N:M关系的关系表全部内容,希望文章能够帮你解决mysql – Nullable外键与N:M关系的关系表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。