Nic*_*ick 6 erd database-design
我正在开发一个允许“用户”创建“列表”的应用程序。我在“用户”和“列表”之间存在多对多关系(这可能不对)。此外,“列表”有许多“任务”。
我想做的是扩展这个模型以包含“邀请”的想法。我希望用户能够互相邀请其他列表。一个用户可以创建多个邀请。用户可以创建一个“邀请”,邀请将有一个或多个“被邀请者”,而这些“被邀请者”又是“用户”。所以我对如何在关系数据库中组织它感到困惑。
我认为核心问题是:用户“拥有”邀请,但也可以是邀请的接收者。清如泥?:)
我希望有人可以就如何实现这一点提供一些建议。任何示例 ERD 都会有用。如果我的问题需要进一步澄清,我可以提供。
谢谢!
我将概括一下您的描述:
根据这个描述,我会提出以下 ERD
由此我可以推导出以下关系
用户('用户id') 列表('list_id',user_id(创建)) 加入('list_id','user_id') 任务('list_id','task_id') 邀请('invitation_id',user_id(发送)) 接收('invitation_id','user_id') 提议('invitation_id','list_id')
主键位于撇号之间。如果字段(因此列表中的 user_id 引用用户中的 user_id),则可以通过名称推断出外键。foreign_key 后面括号中的单词描述了该外键是从 ERD 中的哪个关系派生的。
我不关心 id 列的名称。也许 id 是代理键(人工键)或实体的某些属性。我也没有添加可以轻松添加的其他属性。将任务描述为弱实体是相当任意的。