我为我的客户提出了以下架构。有什么东西在这里,特别是订单行项目。我应该使用继承吗?我很确定这个网站只允许你订购课程,课程和礼品卡,就是这样
任何反馈都将不胜感激
答案 0 :(得分:1)
我对设计的看法:
您有可用购买对象的Courses
,Lessons
和GiftCards
表,OrderLines
包含每个表的ID。但是,如果客户购买Lesson
和GiftCard
,则应在订单中显示为2行。另外,如果您的客户想要交易更多对象,您会怎么做?
因此我觉得重新设计这个部分可能会更好,就像这样:
OrderLines
重命名为OrderItems
; ItemType
表格,共有3行:Courses
,Lessons
,GiftCards
; Items
字段添加(ItemId, ItemType, Title, Price, LanguageCode, SortOrder, etc.)
表。通过这种方式,我们不仅可以为Lessons
添加评论,还可以为所有可能的项目添加评论。
您必须提供保留Items
详细信息字段的首选方法。现在Courses
和Lessons
共享了很多字段,因此将所有字段移动到新的Items
表中可能是合理的,因为这些字段似乎对{ {1}}也。如果您有GiftCards
等特定详细信息,则可以添加特定表格,例如GiftCards
与GiftCardItems
以及一组未与其他Items.id
共享的特殊字段类型。
一个小注:我会将Item
分成几个表,因为我认为这个表将包含客户和支持。这意味着此表可能会变大(取决于预期的客户数量)。当表的行数增加时,在单个表中维护这么多字段可能会有问题。
我同意马特的观点 - 如果没有要求,很难说清楚。
答案 1 :(得分:0)
如果不了解客户的要求,真的很难说。一切看起来都不错,但我无法确定它是否包含客户想要的内容而没有他们的需求文档。