0

我想创建一个表,可以在第一列中存储某物的标题或名称,然后在下一列中关联人员或对象。问题是可能有多个人与相同的标题或名称相关联。如果第一列是我的主键,我不能为每一行重复。

Name1 | Jim
      | John
      | Jill

Name2 | Mike
      | Mary

Name3 | Jeff

这是否需要使用中间表来完成,如果是这样,我对如何实际编码它们(在 sqlite 中)感到模糊。我是否只是使用引用主表中适当属性的外键创建它们?任何帮助,将不胜感激。

4

2 回答 2

1

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

很难对您的问题给出更准确的答案,因为您没有包含任何细节,但很可能您需要一张表来存储您感兴趣的“事物”,一张表来存储有关人员的信息(一行每个人),以及第三个“链接”表,用于将人与“事物”联系起来。

第三个表仅包含构成“事物”表主键的列和构成人员表主键的列。此表的主键由所有列组成(如果“事物”和人员分别由源表中的单个列标识,则可能是两列),并且包含两个外键,一个返回“事物”,一个返回“事物”对人民。

添加一行以将人与事物相关联,但可以添加额外的行以将更多人与指定事物相关联,并将更多事物与每个人相关联。

于 2012-05-25T02:29:05.937 回答
0

另一种选择是使用专门设计用于支持单个字段中的多个值的 DBMS。有多种可供选择,包括至少一种开源风格。查看 d3、rocket software (U2 DBMS)、Ladybridge (open qm) 并在 Google 中搜索多值 DBMS 以获取更多信息。

于 2013-12-17T17:58:45.700 回答