0

我试图自己解决这个问题,但我似乎找不到解决方法,因为我对 SQLite 还很陌生。

基本上,我有一个很大的数据库,由喜欢自己构建的人们喜欢什么(每个喜欢一行,每个人几行)。我想做的是对其进行重组,使每个人都是一行,而喜欢的是表中的列(二进制变量表示人是否喜欢项目)。

但复杂之处在于,我想临时将不同的表从列数会改变的数据中提取出来。

如果有人有答案或指导可以引导我找到一个,将不胜感激。

谢谢

马特

4

1 回答 1

1

您所描述的通常称为“多对多”关系。表示它的推荐方法是使用三个表。

  1. 人员表
  2. 人们喜欢的“事物”表
  3. 人和他们喜欢的事物之间的关联表

第三个表有两列:个人 ID 和事物 ID。

由于一个人在关联表中可以出现多次,每次都与一个唯一的事物,而一个事物在关联表中可以出现多次,每次与一个唯一的人,称为多对可能关联。

如果你搜索“SQLite many to many”,你会发现很多关于如何为这个结构创建模式的想法(带有参照完整性、级联删除等选项)和信息查询。

于 2013-07-10T18:05:21.670 回答