Database design 专用聊天应用程序的数据模型设计
我很难为我的应用程序设计合适的数据模型。Database design 专用聊天应用程序的数据模型设计,database-design,data-modeling,Database Design,Data Modeling,我很难为我的应用程序设计合适的数据模型。 在我的应用程序中,我有两对参与者,他们将一起完成几个活动。每个配对在其存在过程中将有2-3次对话。每个对话可能有许多由配对中的任一参与者编写的消息。 我最好的型号是: PAIRINGS / \ / \ V V PARTICIPANTS CONVERSATIONS -pairing_id -pairing_id \
在我的应用程序中,我有两对参与者,他们将一起完成几个活动。每个配对在其存在过程中将有2-3次对话。每个对话可能有许多由配对中的任一参与者编写的消息。
我最好的型号是:
PAIRINGS
/ \
/ \
V V
PARTICIPANTS CONVERSATIONS
-pairing_id -pairing_id
\ /
\ /
V V
MESSAGES
-participant_id
-conversation_id
但是,该模型允许消息的作者在与对话相关联的配对之外,这似乎是错误的。有谁对我如何构建数据模型有更好的建议吗?这是一个常见问题。在
MESSAGES
表中添加pairing\u id
,并适当更改两个FOREIGN
键以包括此列:
PAIRINGS
/ \
/ \
V V
PARTICIPANTS CONVERSATIONS
-pairing_id -pairing_id
\ /
\ /
V V
MESSAGES
-participant_id
-conversation_id
-pairing_id
大多数DBMS还要求您在
参与者(配对id,参与者id)
和对话(配对id,对话id)
上添加唯一的
索引,这太模糊了。没有标准的符号。没有足够的细节。我没有足够的声誉来发布图片,所以我无法包含图表。如果有任何问题我可以回答,我很乐意回答。很有趣。。。这是一个我可以阅读更多的常见模式吗?我可以在互联网上搜索一些术语吗?是的,我应该说这在菱形设计中很常见。请看这个类似的问题:或者这个(更复杂的)问题:请注意,这需要一个复合(复合)PK或唯一索引以及复合外键,并且一些ORM在复合FK方面有困难,或者根本无法使用这些。