Вы можете использовать одну таблицу строк для всех списков, например, просто
CREATE TABLE ListLines (
listID INTEGER,
lineNo INTEGER,
line TEXT,
PRIMARY KEY (listID, lineNo),
FOREIGN KEY (listID) REFERENCES Lists
);
с таблицей списков, равной:
CREATE TABLE Lists (
listID INTEGER PRIMARY KEY,
userID INTEGER,
title TEXT,
comment TEXT,
FOREIGN KEY (userID) REFERENCES Users
);
при условии, что у вас есть таблица Users
с первичным ключом userID INTEGER
с информацией о пользователе (имя и т. Д. И т. Д.).
Таким образом, чтобы получить все строки списка по его идентификатору, вы просто
SELECT line FROM ListLines
WHERE listID=:whateverid
ORDER BY lineNo;
или вы можете СОЮЗИТЬ это, например, с название:
SELECT title AS line FROM Lists
WHERE listID=:whateverid
UNION ALL
SELECT line FROM ListLines
WHERE listID=:whateverid
ORDER BY lineNo;
и так далее. Это гибкое и эффективное соглашение - это реляционный способ ведения дел ...