我正在制作一个应用程序,其中超级用户可以接受成员的订单,并且可以创建多个成员的组,这些成员也可以接受订单。
现在我有以下设计:
成员
GroupMembers
Oders
还想过:
成员
组
GroupMembers
Oders
哪种设计更好或设计更好?
答案 0 :(得分:0)
像往常一样 - 这取决于。如果您熟悉面向对象的设计,您可能会发现想到"成员"和"团体"作为对象。组真的是一种成员(继承)吗?会员和团体都有共同的超级类型吗?当您进一步使用数据模型时,成员和组之间是否会有共享属性?
如果"会员"和"组"没有什么比他们可以下订单更常见的了,它可能最好创建单独的表(你的第二个设计)。
如果"会员"和"组"基本上是相同的概念,您可能想尝试以下内容:
实体 ID 名称 EntityTypeID
的EntityType
EntityTypeID
Name ("group" or "member")
GroupMembers
ParentEntityId = (Fk -> entity.id)
ChildEntityId(Fk -> entity.id)
订单
id
EntityID
product id (Fk -> product.id)