Обычно у вас есть определения таблиц, такие как:
create table user (
id int,
name varchar,
list_id int, /* optional */
etc.
)
create table list (
id int,
name varchar,
owner_id int
etc.
)
create table item (
id int,
name varchar,
etc.
)
create table item_x_list (
id int,
list_id int,
item_id int
)
такой, что:
user -> list -> item_x_list -> item*
Обратите внимание, что вы можете вообще пропустить таблицу списков, если вам не нужны специфичные для списка данные, такие как имя.