English 中文(简体)
具有多价值属性的 SQLite 表格
原标题:SQLite Table with Multi-valued attributes

我想创建一个表格,可以储存,比如,第一栏中某物的标题或名称,然后在下一栏中存有相关人或对象。问题在于可能有许多人与同一标题或名称相关联。如果第一栏是我的主要密钥,我就不能为每行保留重复内容。

Name1 | Jim
      | John
      | Jill

Name2 | Mike
      | Mary

Name3 | Jeff

是否有必要用中间表格来做到这一点, 如果需要的话, 我对如何实际编码这些表格( 以平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平方平

最佳回答

是的, 在 SQLite ( 或任何关联数据库) 中, 您可以通过创建单独的表格来模拟这个模式。 在关联模型中, 将两条信息存储在一列中, 是一种死罪 。

很难更精确地回答你的问题, 因为您不包含任何细节, 但最有可能您需要一张表格来存储您感兴趣的“ 东西 ”, 一个表格来存储关于人的信息( 每人一行), 还有第三个“ 链接” 表格来将人与“ 东西 ” 联系起来 。

第三个表格仅包含构成“东西”表格主要关键字的列和构成人口表格主要关键字的列。本表格的主要关键字由所有列组成(如果源表格中“东西”和人分别由单列标明,则可能有两个列),并包含两个外国键,一个回溯到“东西”,另一个回溯到人。

添加一行以将某人与某物联系起来,但可添加更多行以将更多人与特定物联系起来,并将更多物与每个人联系起来。

问题回答

另一个选项是使用专门设计的 DBMS 支持单一字段中多个值的 DBMS 。 从至少包含一个开放源的口味中可以选择几种。 查看 d3, 火箭软件( U2 DBMS ), Ladybridge (open qm), 并搜索 Google 多值 DBMS 的多值 DBMS 。

这一点得到了 MySQL 8.0.17+的有力支持,将你的数值储存在JSON阵列中,并添加