Присоединяйтесь к таблицам в sqlite с множеством

82
14

У меня есть следующая схема базы данных:


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

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


и я уже имею, какие люди являются членами групп в отдельном файле (скажем, в кортежах (person id, group id). Как я могу структурировать схему базы данных так, чтобы было легко получить доступ к группам людей, а также легко получить доступ к членам группы? Трудно и медленно читать кортежи, которые у меня есть сейчас, поэтому я хочу, чтобы это было в форме базы данных. Я не могу иметь такие вещи, как member1, member2 и т.д. в виде столбцов, поскольку количество людей в группе в настоящее время не ограничено.

спросил(а) 2013-05-14T21:10:00+04:00 7 лет, 4 месяца назад
1
Решение
161

Переместите текстовый файл в таблицу базы данных


CREATE TABLE groups_people (
groups_id integer,
people_id integer,
PRIMARY KEY(group_id, people_id)
);

И выберите всех людей, входящих в группу 7

SELECT * FROM people p  
LEFT JOIN groups_people gp ON gp.people_id = p.id
WHERE gp.groups_id = '7';

И выберите все группы, в которых человек 5 находится в


SELECT * FROM groups g  
LEFT JOIN groups_people gp ON gp.groups_id = g.id
WHERE gp.people_id = '5';

ответил(а) 2013-05-14T21:18:00+04:00 7 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема