2015-04-07 2 views
-2

Я хочу создать приложение для свадьбы, и у меня есть база данных MySQL. Каждый пользователь может добавить много гостей. Как организовать мою базу данных? У меня есть два варианта:
1. Создайте таблицу с именем «Пользователи со столбцами: электронная почта и пароль», а затем создайте таблицу с именами «Гостей» со столбцами электронной почты и гостей. В гостевом столе я могу хранить XML-узел со всеми гостями каждого пользователя. Но это кажется дезорганизованным.
2. Создайте новую схему для каждого пользователя и создайте таблицу с именем «Гостей» со столбцами, которые представляют гость (имя, фамилия, тел и т. Д.). И каждая запись будет гостем.Как организовать базу данных MySQL

Вы можете помочь мне выбрать правильный путь? И объясните мне, почему.

Спасибо

+0

Почему не может таблица пользователь имеет отношение один-ко-многим к столу гостя ? – MadProgrammer

+0

Я никогда не думал об этом. Но что, если у пользователя будет 500 гостей и будет 500 пользователей? Не имеет значения, будет ли 250 000 записей? Не более организован, если я буду использовать новую схему для каждого пользователя? – Ghita

+0

Я действительно не думаю, что база данных, например MySQL, будет мигать с 250 000 записей в двух таблицах – MadProgrammer

ответ

0

Создать один стол с именем «Гость», где вы храните данные всех гостей. Обязательно наличие уникального ключа для каждого гостя, скажем, guest_id.

Создайте вторую таблицу с именем «Пользователи» со всеми данными пользователей и столбцом user_id.

Создайте третью таблицу, которая соединит первые две таблицы. Вызовите его Приглашения. Здесь у вас будет как минимум две колонки: user_id и guest_id. Ваш первичный ключ в этой таблице должен состоять из этих двух столбцов.

Таким образом, у вас есть уникальные данные для каждого гостя/пользователей в их личных столах. Вы можете использовать третью таблицу invitations для подключения первых таблиц:

Примера содержания третьей таблицы (invitations):

user_id | guest_id 
---------------------- 
user_id_1 | guest_id_1 
user_id_1 | guest_id_2 
..... 
user_id_2 | guest_id_1 (this guest is invited on both weddings :)) 
user_id_2 | guest_id_999 (this one is only here) 
Смежные вопросы