我的问题是如何为不同类型的产品建立交易模型。
所以有一个事务表:
TransactionId(pk)
Amount
Method
AuthorisedBy(fk)
不同类型的产品有不同的表格。 图书表:
BookId(pk)
Name
Description
Price
还有一个 Pens 表:
PenId(pk)
Color
Description
Price
还有一张削笔服务的 table :
SharpenId(pk)
Description
Price
<小时/>
现在我的问题是将交易与不同项目的特定 ID 链接起来。 一种方法是在事务表中包含:
TransactionId(pk)
Amount
Method
AuthorisedBy
ProductType
ProductTypeId(fk)
其中产品类型指的是表的标题,例如“书籍”,在这种情况下,产品 ID 指的是 BookId。
或者另一种方法是拥有一个“产品”链接表,它引用其他表的每个不同 ID,因此事务表将如下所示:
TransactionId(pk)
Amount
Method
AuthorisedBy
ProductID(fk)
产品表将如下所示:
ProductId(pk)
PoductType
ProductTypeId(fk)
但是这是一个与交易表完全相同的表。所以我的问题是如何有效地将不同产品类型表链接到交易? 请注意,我并不是在为学校削笔服务建模,它们只是示例:P
最佳答案
首先我不喜欢数据库模型。您只需要一张用于产品定义的表,该表可以包含描述每种产品的列: (表)产品:ID - PK、名称、描述、颜色、价格、产品类型 ID - FK
您需要额外的表格来解释产品的类型,例如它的类别: (表)产品类型:产品类型 ID - PK、产品类型名称
为了注册交易,您只需要一张表: (表)交易:TransactionID、ProductID - FK、金额、方法、AuthorizedBy
我认为这个架构可以帮助您解决您的问题。 快乐编码。
关于mysql - 数据库架构问题,产品类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1565139/