具有多值属性的SQLite表

时间:2012-05-25 01:27:52

标签: sqlite multivalue

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

Name1 | Jim
      | John
      | Jill

Name2 | Mike
      | Mary

Name3 | Jeff

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

2 个答案:

答案 0 :(得分:1)

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

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

此第三个表仅包含构成“things”表的主键的列以及构成people表主键的列。该表的主键由所有列组成(如果“事物”可能是两列,并且每个列都由源表中的单个列标识),并且包含两个外键,一个返回“事物”,一个给人们。

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

答案 1 :(得分:0)

另一种选择是使用专门设计用于在单个字段中支持多个值的DBMS。有几种可供选择,包括至少一种开源风味。看看d3,火箭软件(U2 DBMS),Ladybridge(开放式qm)以及Google搜索多值DBMS以获取更多信息。

相关问题