我的问题是如何为不同类型的产品建模交易。
所以有一个交易表:
TransactionId(pk)
Amount
Method
AuthorisedBy(fk)
不同类型的产品有不同的表格。 书籍表:
BookId(pk)
Name
Description
Price
和钢笔表:
PenId(pk)
Color
Description
Price
铅笔锐化服务表:
SharpenId(pk)
Description
Price
现在我的问题是将交易与不同项目的特定ID相关联。 一种方法是在交易表中:
TransactionId(pk)
Amount
Method
AuthorisedBy
ProductType
ProductTypeId(fk)
如果产品类型会引用表格的标题,例如书籍,那么产品ID就会引用BookId。
或者另一种方法是拥有一个引用其他表的每个不同id的'products'链接表,因此Transaction表看起来像这样:
TransactionId(pk)
Amount
Method
AuthorisedBy
ProductID(fk)
并且products表格如下所示:
ProductId(pk)
PoductType
ProductTypeId(fk)
但是这是一个与事务表完全相同的表。所以我的问题是如何有效地将不同的产品类型表链接到交易? 请注意我没有为学校铅笔削尖服务建模,它们只是示例:P
答案 0 :(得分:2)
首先,我不喜欢数据库模型。您只需要一个用于产品定义的表,该表可以包含描述每个产品的列: (表)产品:ID - PK,名称,描述,颜色,价格,ProductTypeID - FK
您需要额外的表来解释产品的类型,它的类别应该说: (表)ProductTypes:ProductTypeID - PK,ProductTypeName
要注册交易,您只需要一张桌子: (表)交易:TransactionID,ProductID - FK,Amount,Method,AuthorizedBy
我认为此架构可以帮助您解决问题。 快乐的编码。