我的问题是如何为不同类型的产品建模交易。DB架构问题,产品类型
所以就有了交易表:
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其他表的“产品”的连接表,所以事务表是这样的:
TransactionId(pk)
Amount
Method
AuthorisedBy
ProductID(fk)
和产品表将看起来像这样:
ProductId(pk)
PoductType
ProductTypeId(fk)
但是,然后这是一个表是完全相同的交易表。所以我的问题是如何有效地将不同的产品类型表链接到事务? 请注意我不是一个学校铅笔锐化服务的建模,他们只是例子:P
但是我的产品类型彼此差别很大,例如在我的'铅笔锐化'表中,因为它是一项服务,在这张表中有很多不同的条目,以及该数据如何存储在您的产品中表,因为他们没有'颜色',或除了价格,描述之外的其他任何共同的列。 – theraven 2009-10-14 10:15:26
+1您可以用1:1关系扩展产品表以添加某些属性;如本答案中提到的ProductTypes或ProductColor以供评论。产品表本身可以包含生成发票所需的所有字段,并且开具发票代码可以避免处理各种产品类型所需的复杂性。 – Andomar 2009-10-14 12:32:47
我打算给这个答案一个答案,因为它回答了我问的问题,但不幸的是我的问题需要改进,稍后再问。 – theraven 2009-10-15 06:24:13