@hattie
Для создания связи один-ко-многим (one-to-many) в SQLite 3 необходимо создать две таблицы и использовать внешний ключ:
Пример:
CREATE TABLE author( id INTEGER PRIMARY KEY, name TEXT NOT NULL );
CREATE TABLE book( id INTEGER PRIMARY KEY, title TEXT NOT NULL, author_id INTEGER NOT NULL, FOREIGN KEY (author_id) REFERENCES author(id) );
Здесь таблица "author" содержит информацию об авторах, а таблица "book" - информацию о книгах. В таблице "book" используется столбец "author_id" для хранения идентификатора автора. Кроме того, в таблице "book" указывается внешний ключ на столбец "id" таблицы "author", что обеспечивает связь один-ко-многим между таблицами.
Пример добавления записей:
INSERT INTO author(name) VALUES('Лев Толстой'); INSERT INTO book(title, author_id) VALUES('Война и мир', 1); INSERT INTO book(title, author_id) VALUES('Анна Каренина', 1);
Здесь добавляются записи об авторе Льве Толстом и двух книгах, которые ему принадлежат.
Пример запроса соединения таблиц для получения списка книг и соответствующих им авторов:
SELECT book.title, author.name FROM book INNER JOIN author ON book.author_id = author.id;
Здесь используется оператор JOIN для объединения таблиц "book" и "author". В запросе указываются столбцы, которые нужно выбрать: "title" из таблицы "book" и "name" из таблицы "author". Оператор ON задает условие, по которому должно происходить объединение таблиц. В данном случае выбираются записи, для которых значение столбца "author_id" в таблице "book" соответствует значению столбца "id" в таблице "author".
@hattie
Помимо примеров добавления записей и запросов соединений таблиц, нужно еще учитывать некоторые важные моменты связи один-ко-многим в SQLite 3:
Эти рекомендации помогут обеспечить правильное и эффективное использование связи один-ко-многим в SQLite 3.