其他两个中间人之间的中间表的正确名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了其他两个中间人之间的中间表的正确名称相关的知识,希望对你有一定的参考价值。

我有4个实体:EventMessageFlowDocument

Event表存储有限(种子)的记录数。 Message有很多活动,每个活动都可以与许多消息相关。 event_message这个名字是给中间表的。

如您所见,中间表的约定是:{tablename}_{tablename}

Flow表存储有限(种子)的记录数。 Message有很多流,每个流都可以与许多消息相关。 flow_message这个名字是给中间表的。

FlowMessageflow_message上的每条记录)之间的每个关系上创建一个文档。

问题从这里开始:

消息上的每个事件都有不同的文档流。这意味着:对于中间表flow_message上的每个新记录,中间event_message上的每个记录都有一个相关的新文档。

为了解决这个问题,我在event_messageflow_message之间创建了一个名为:event_message_flow_message的中间表。

enter image description here

这是正确的(以某种传统方式)?这个建模是否正确?

如何通过另外两个中间表来正确建模和命名中间表导数?

答案

我也希望有一些惯例。由于我不知道任何官方惯例,我发明了我的。重要的是尊重您选择的惯例。

所以我会把event_message_flow_message改为rel_eventmessage_flowmessage。但对我来说,你的惯例非常好。

另一答案

很难提出建议,因为你的模型对我来说有点奇怪。你在DOCUMENTFLOW_MESSAGE以及DOCUMENTEVENT_MESSAGE_FLOW_MESSAGE之间有1:1的关系。在我的脑海里很难将这与EVENT_MESSAGE_FLOW_MESSAGE的多对一关系调和起来。如果您与DOCUMENT的关系真的是1:1(强制性),那么为什么要将文档保存在单独的表中?

要解决有关表命名的问题:我认为命名交集表的{table} _ {table}约定不是最佳实践,而是在您无法想到更好名称的情况下的后备。

最佳实践是表的名称反映由表中的数据记录/描述的事物的商业名称。这并不总是可行,特别是对于交叉表。交叉表表示多对多关系,并且通常难以使​​用名词来描述关系。

在您的情况下,我不认为您的约定实际上使事情特别容易理解。我可能会尝试简化像MESSAGE_DOCUMENT甚至只是DOCUMENT这样的东西 - 因为这些似乎在任何情况下都是1:1相关的。

以上是关于其他两个中间人之间的中间表的正确名称的主要内容,如果未能解决你的问题,请参考以下文章

MySQL表名称指南样式[关闭]

Hibernate学习笔记 --- 创建基于中间关联表的多对多映射关系

将中间对象垂直对齐在其他 2 个对象之间的中心

876. 链表的中间结点

876. 链表的中间结点

无法更新 View Pager 中的中间片段。