Mysql 在多个表行之间创建关系/链接

Mysql 在多个表行之间创建关系/链接,mysql,sql,Mysql,Sql,例如,我有一个表positions,我想在其中创建多个表行之间的关系。如果需要“链接”在一起的行数未知,那么使用单独的表链接ID最有意义的是什么 最好是 创建一个单独的表links,其中有许多列(即:linked_id1[…]linked_id[n]),其中linked_id是每行的id,links.id列是链接的id。逻辑是我们可以创建比我们认为需要的更多的列 或 创建一个单独的表links,该表有两列,id和linked\u id,其中linked\u id是由位置的“linked”行

例如,我有一个表
positions
,我想在其中创建多个表行之间的关系。如果需要“链接”在一起的行数未知,那么使用单独的表链接ID最有意义的是什么

最好是

  • 创建一个单独的表
    links
    ,其中有许多列(即:linked_id1[…]linked_id[n]),其中linked_id是每行的id,links.id列是链接的id。逻辑是我们可以创建比我们认为需要的更多的列

  • 创建一个单独的表
    links
    ,该表有两列,
    id
    linked\u id
    ,其中
    linked\u id
    是由
    位置的“linked”行组成的逗号分隔数组

  • 执行上述操作,用JSON数据替换数组

每一行只能链接到一个组中,这有望简化工作。

如果每一行可以包含到多个链接组中,那么您可以创建带有两个字段的
LINKS
表:
ID1
ID2
,用于存储每个链接

如果每一行只能在一个链接的组中,则可以将
group\u ID
字段添加到
positions
表本身


如果上述内容无法回答您的问题,请澄清您的要求

这些都不是。读一点关于1NF、2NF和3NF的知识,你会得到一个好的方向。@HankyPankyㇱ 谢谢你的建议。你是说我应该做数组选项,然后在数组上使用1NF,这样我在第三个表中有两列
link\u id
row\u id
,其中
link\u id
不是唯一的?我编辑了我的OP,以包括说明:每一行只能链接到一个组中。虽然你没有完全回答这个问题,也许我问得不像我想的那么清楚。@Tomanow-如果每一行只能属于一组链接行(比如,同一年级的学生,同一排的士兵),那么从数据建模的角度来看,你不需要额外的表。您只有两个标记[mysql]和[sql],这让我们相信您的问题是关于数据库的,而不是关于使用它的应用程序。如果行与您的学生在同一年级示例中有共同点,则会简单得多,不幸的是,它们将通过复选框手动添加到链接组中。每个链接的组都需要一个唯一的id,因此我希望首先使用AI PK将数据添加到一个单独的表中。然后,如果需要,我可以使用一个简单的触发器用链接id更新每一行。阅读我对汉基的评论,我认为这是我应该走的方向。谢谢你的建议,我非常感谢你的反馈。