在sqlite中加入多对多的表

jcl*_*ncy 4 sql database sqlite

我有以下数据库架构:

create table people (
    id integer primary key autoincrement,
);

create table groups (
    id integer primary key autoincrement,
);
Run Code Online (Sandbox Code Playgroud)

我已经有哪些人是哪个组的成员在一个单独的文件中(让我们说在(person id,group id)的元组中.我如何构建我的数据库模式,以便它可以很容易地访问一个人的组,也很容易访问成员一组?它是困难和缓慢阅读,我目前拥有的元组,所以我想这是在数据库的形式.我不能拥有的东西member1,member2等栏目,因为人组中的数量是目前无限.

csi*_*csi 16

将文本文件移动到数据库表中

CREATE TABLE groups_people (
  groups_id integer,
  people_id integer,
  PRIMARY KEY(group_id, people_id)
);  
Run Code Online (Sandbox Code Playgroud)

并选择所有属于第7组成员的人员

SELECT * FROM people p  
  LEFT JOIN groups_people gp ON gp.people_id = p.id  
  WHERE gp.groups_id = '7';
Run Code Online (Sandbox Code Playgroud)

并选择人5所在的所有组

SELECT * FROM groups g  
  LEFT JOIN groups_people gp ON gp.groups_id = g.id  
  WHERE gp.people_id = '5';
Run Code Online (Sandbox Code Playgroud)