【发布时间】:2015-03-12 09:19:27
【问题描述】:
我有一个疑问。请仔细阅读以下示例。
- 有一种收入类型称为其他收入
- 每一项其他收入可能或可能不都需缴纳增值税。
- 一项其他收入只能有一项增值税(如果有的话)。
正如您在上述几点中看到的,其他收入和增值税之间的关系是一对一/无。
现在看下图。
我们希望 VAT 表包含 Other_Income 引用,因此 idVat 位于 Other_Income 表中。如果您想知道为什么会有单独的增值税表,这是因为许多其他类型的费用也需要缴纳增值税。
但是想象一下,由于某种原因,有人希望 Other_Income 表包含 VAT 参考。在这种情况下,如果您使用 MySQL Work bench 或 GUI 工具构建图表,则关系行中的 1 将显示在 Other_Income 表的一侧,0..1 将出现在VAT表的旁边。
然而,不管它是什么,它都有一对一/无的联系。那么,Relationship 和外键的位置之间没有联系吗?换句话说,没有像You must put the foreign key to X table of the relationship. Other table is prohibited.这样的规则?
据我所知并知道没有这样的规则,您可以将外键放在关系中的任何表中,这只是您的偏好和决定让事情“工作”。不过我想澄清一下我的疑问。
更新
以上只是一个更有意义地解释问题的例子。因此,请不要让你的答案依赖于上面的例子。
【问题讨论】:
-
在物理模式的实践中,除非有特定的技术要求(例如,在某些数据库服务器中,您可能希望隔离一些大数据例如,将图像放入文件结构中的不同表和物理位置)。只需将增值税信息作为可选信息放入主表并使其可选
标签: mysql sql database-design foreign-keys relational-database