我正在寻找一种方法来链接单个表中的多行。
简而言之,这是一个用户可以在其中添加消息的系统。消息链接到一个部门。用户可以一次将消息发布到多个部门。
消息在消息表中多次存储。因此,当我将消息发送到3个部门时,它将在message表中创建3行。 这样做的原因是因为每个部门的用户都可以评论消息。在不同的部门中,评论也会有所不同。
一个新请求可以链接这些消息。为了简单起见,我可以将消息标记为“完成”。当此消息在“ a”分区中标记为“完成”时,在“ b”和“ c”分区中的其他消息(其他两行)也需要获得此标记。
目前,我对如何以一种好的方式做到这一点一无所知。 我曾想过创建一个包含消息ID的额外表,但仍不确定如何从中获取所有链接消息。
作为一个“父母”,我想到了一个信息。然后在每次更改时搜索子代和父代消息。但这并不是一个好的解决方案。
真的期待一些建议,以帮助我朝正确的方向前进!
答案 0 :(得分:0)
将messages
分成两个表;我将它们称为m1
和m2
:
m1
的所有列在所有部门中保持不变。这可能包括邮件的大文本。让我们来PRIMARY KEY(m_id)
。 m_id
可以是AUTO_INCREMENT
。听起来done
需要在此表中。
m2
每格有一行,因此,它有mid
和division_id
的副本,因此很可能是PRIMARY KEY(mid, division_id)
(或可能是相反的顺序)。此表中还列出了各部门之间不同的任何列。
m1:m2是一对多的关系,通过m_id
实现。该列将用于JOINing
。
听起来“评论”是按部门划分的。因此,comment
(无论在哪里)都将同时包含m_id
和division_id
。