-- Predicate: User has id number :user_id.
create table users (
user_id integer primary key
);
-- Predicate: Movie has id number :movie_id and name :movie_name.
create table movies (
movie_id integer primary key,
movie_name varchar(150) not null -- Movie names aren't unique.
);
-- Predicate: User :user_id likes to watch movie :movie_id.
create table movie_preferences (
user_id integer references users (user_id),
movie_id integer references movies (movie_id),
primary key (user_id, movie_id)
);
Если у вас позже будут другие предпочтения, скажем, рестораны, то вам понадобится таблица ресторанов и таблица предпочтений ресторана.
-- Predicate: Restaurant has id number :restaurant_id and name :restaurant_name,
-- and is known for its :known_cuisine cooking.
create table restaurants (
restaurant_id integer primary key,
restaurant_name varchar(150) not null,
known_cuisine varchar(30) not null
);
-- Predicate: User :user_id likes to eat at restaurant :restaurant_id.
create table restaurant_preferences (
user_id integer references users (user_id),
restaurant_id integer references restaurants (restaurant_id),
primary key (user_id, restaurant_id)
);
Вам нужны дополнительные таблицы для дополнительных предпочтений, потому что фильмы - это не то же самое, что рестораны, и «мне нравится« Top Gun »» не означает то же самое, что «мне нравится Burger King». "
У вас не будет множества таблиц.У вас будет только одна таблица для каждого предпочтения.(Потому что вам придется создать таблицу ресторанов, чтобы можно было их идентифицировать, верно?)