如何建模用户之间交换的消息? - ER图

Kel*_*ubi 4 database-design erd entity-relationship entity-relationship-model

我正在尝试设计一个ER图,其中我有一个USER和一个MESSAGE实体.用户可以向其他用户发送消息.我为此设计了两个替代图表,但我不确定哪一个是正确的.在第一个中,我使用与角色的递归关系,而在第二个中,我使用2个不同的关系.

Loa*_*Loa 6

都不是.在这里,我们有一个自我关系的案例.

发送消息被解释为事件,而不是实体,即使它具有属性/属性.两个实体之间存在紧密连接:用户和用户.ER图中概念模型的正确情况是:

PIC01

请注意这里的基数.用户可能会或可能不会向其他人发送消息.同样,用户可能会或可能不会从其他用户接收消息.

一旦你肢解它,也就是说,一旦你对逻辑模型进行了分解,你就会得到以下情况:

pic02

这里的"To"和"From"代表一个外键.这种类型的模型在数据库中产生两个表.一个将代表系统的用户.另一个将代表用户之间交换的消息.此处的外键可能会也可能不会作为复合主键.在我看来,我更喜欢使用代理键,但这取决于你.

希望我能以某种方式帮助过.如果您还有其他问题,请发表评论,我会编辑我的答案,或者我也可以添加评论.