我有4个实体:Event、Message、Flow和Document。
Event表存储有限的(种子)记录数。Message有许多事件,每个事件都可以与许多消息相关。event_message是中间表的名称。
如您所见,中间表的约定是:{tablename}_{tablename}。
Flow表存储有限的(种子)记录数。Message有许多流,每个流都可以与许多消息相关。flow_message是中间表的名称。
在Flow和Message之间的每个关系上创建一个文档(flow_message上的每个记录)。
这个问题从这里开始:
消息上的每个事件按流有不同的文档。它的意思是:对于中间表flow_message上的每条新记录,中间event_message上的每条记录都有一个相关的新文档。
为了解决这个问题,我在event_message和flow_message之间创建了一个名为:event_message_flow_message的中间表。

这是正确的(以某种传统的方式)吗?这个模特儿对吗?
如何用另外两个中间表对中间表的导数进行适当的建模和命名?
发布于 2017-12-25 11:56:25
我也希望有一些会议。因为我不知道任何正式的会议,所以我发明了我的。重要的是要尊重你选择的惯例。
所以我会把event_message_flow_message改为rel_eventmessage_flowmessage。但对我来说你的会议很不错。
发布于 2017-12-25 17:37:18
我很难推荐你的模型,因为我觉得你的模式有点奇怪。在DOCUMENT和FLOW_MESSAGE以及DOCUMENT和EVENT_MESSAGE_FLOW_MESSAGE之间都有1:1的关系。在我的脑海中,很难将这一点与与EVENT_MESSAGE_FLOW_MESSAGE的多到一种关系相协调。如果您与DOCUMENT的关系实际上是1:1 (强制的),那么为什么要将文档保存在一个单独的表中呢?
要解决有关表命名的问题:我认为,用于命名交叉表的{ table }_{table}约定不是最佳实践,而是在您无法想到更好名称的情况下的退步。
最佳实践是表的名称反映由表中的数据记录/描述的事物的业务名称。并不总是能够做到这一点,特别是对于交叉表。交表表示多到多的关系,关系通常很难用名词来描述.
在你的例子中,我认为你的惯例并没有让事情变得特别容易理解。我可能会尝试简化一些类似于MESSAGE_DOCUMENT甚至DOCUMENT的东西,因为在任何情况下,它们似乎都是1:1相关的。
https://stackoverflow.com/questions/47962062
复制相似问题