#mysql #database-design
Вопрос:
Моя проблема: То, что я хотел бы сделать, — это добавить возможность для пользователя связывать свое меню с другим пользователем. Разрешение любых изменений в меню от любого пользователя отображается для обоих пользователей.
Мой текущий мыслительный процесс: я добавил поле «присоединенный пользователь», но это выглядит неправильно. Было бы лучше сделать отдельную таблицу для меню, а затем вытащить ее оттуда? Или есть более правильный/эффективный способ сделать это?
*Редактировать
Извините за поздний ответ. Кажется, я понял.
Комментарии:
1. Может ли меню быть общим для группы пользователей или это всегда просто пара?
2. Ну, изначально я предполагал только пару, но было бы более разумно, чтобы ею делилась группа.
3. Разве у «меню» не должно быть «названия», а не «рецепта»?
Ответ №1:
Вместо добавления menu_user
menu
таблицы создайте таблицу отношений, которая связывает всех пользователей, совместно использующих меню:
CREATE TABLE menu_users ( id INT(10) PRIMARY KEY AUTO_INCREMENT, user_id INT(10), menu_id INT(10), UNIQUE INDEX (user_id, menu_id), FOREIGN KEY (user_id) REFERENCES users (id), FOREIGN KEY (menu_id) REFERENCES menu (id) );