如何在单个表中链接多行-MySQL

时间:2019-05-23 08:09:35

标签: php mysql database database-design

我正在寻找一种方法来链接单个表中的多行。

简而言之,这是一个用户可以在其中添加消息的系统。消息链接到一个部门。用户可以一次将消息发布到多个部门。

消息在消息表中多次存储。因此,当我将消息发送到3个部门时,它将在message表中创建3行。 这样做的原因是因为每个部门的用户都可以评论消息。在不同的部门中,评论也会有所不同。

一个新请求可以链接这些消息。为了简单起见,我可以将消息标记为“完成”。当此消息在“ a”分区中标记为“完成”时,在“ b”和“ c”分区中的其他消息(其他两行)也需要获得此标记。

目前,我对如何以一种好的方式做到这一点一无所知。 我曾想过创建一个包含消息ID的额外表,但仍不确定如何从中获取所有链接消息。

作为一个“父母”,我想到了一个信息。然后在每次更改时搜索子代和父代消息。但这并不是一个好的解决方案。

真的期待一些建议,以帮助我朝正确的方向前进!

1 个答案:

答案 0 :(得分:0)

messages分成两个表;我将它们称为m1m2

m1的所有列在所有部门中保持不变。这可能包括邮件的大文本。让我们来PRIMARY KEY(m_id)m_id可以是AUTO_INCREMENT。听起来done需要在此表中。

m2每格有一行,因此,它有middivision_id的副本,因此很可能是PRIMARY KEY(mid, division_id)(或可能是相反的顺序)。此表中还列出了各部门之间不同的任何列。

m1:m2是一对多的关系,通过m_id实现。该列将用于JOINing

听起来“评论”是按部门划分的。因此,comment(无论在哪里)都将同时包含m_iddivision_id