作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个 Transactions
关系,它可以是 Sell
或 Buy
交易。每笔交易都有不同数量的不同元素
集。
卖出
和买入
具有不同的属性。
所以我想了几种办法:
1) 有一个架构,其中有一个父关系 Transaction
,它有 2 个子关系 Sell
和 Buy
以及 Transaction_Items
到交易
的关系链接
Transaction:(id, date)
Sell:(Transaction.id, Supplier.name)
Buy:(Transaction.id, Employee.name, Customer.name)
Transaction_Items:(Transaction.id, Item.id, quantity)
这里的问题是我找不到Sell
和Buy
的主键
2) 将 Sell
、Buy
和 Transaction
合并为一个关系,例如,如果是购买交易,则 Supplier .name
将为 null。
Transaction:(id, date, Supplier.name, Employee.name, Customer.name)
Transaction_Items:(Transaction.id, Item.id, quantity)
3)有单独的关系来代表卖出交易或买入交易,并且每个交易都有自己的交易项目关系
Sell_Transaction:(id, date, Supplier.name)
Buy_Transaction:(id, date, Employee.name, Customer.name)
Sell_Transaction_Items:(Sell_Transaction.id, Item.id, quantity)
Buy_Transaction_Items:(Buy_Transaction.id, Item.id, quantity)
您能告诉我哪个更适合使用以及为什么您推出了其他的吗?另外,如果您对其他方式有任何其他想法,请告诉我们。
最佳答案
选项 1 是最佳选择。将交易子类化为销售和购买组件将有助于更深入地了解数据,但从长远来看将节省空间。
关于mysql - 将设计拆分为父表和子表,或者拥有一个包含所有数据的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744164/
我是一名优秀的程序员,十分优秀!