Mysql: я должен поместить свои данные в 1 таблицу или разделить на пользователя? - PullRequest
2 голосов
/ 16 апреля 2010

Эти данные относятся к простым календарям размещения в коттеджах. Данные просты и хранят даты, когда каждый коттедж забронирован.

Цвет столбцов будет cottage_id, booked_from_date, booked_until_date, и я ожидаю, что около 60 строк на пользователя в год * 200-300 пользователей.

Я должен поставить это один стол, верно?

Ответы [ 3 ]

7 голосов
/ 16 апреля 2010

ДАЧА


cottage_id,
адрес ?,
другая информация ...

USER

user_id,
имя,
другая информация ...

COTTAGE_RESERVATION

cottage_id,
user_id,
FROM_DATE,
to_date

1 голос
/ 16 апреля 2010

Да , это должно быть помещено в один стол (для всех коттеджей).

Вы столкнетесь с целым миром боли, когда начнете размещать данные, которые должны быть в одной таблице (которые могут быть разделены определяющим типом / id) в отдельные таблицы.

Подумайте, как написать запрос, чтобы получить доступность по всем единицам, на определенную дату, по 10-40 или более единиц?

Нормализация таблицы в структуру MANY to MANY совершенно нормальна, она отделяет Cottages от Users и связана таблицей CottageUsers с зарегистрированными датами.

0 голосов
/ 26 ноября 2012

Я думаю, что ответ Рэнди хорош ... еще одна идея, которую он добавил бы, это использовать таблицу календаря, например:

COTTAGE_CALENDAR

  • cottage_id
  • дата
  • reservation_id

Добавьте по одной строке для каждого дня бронирования и сделайте поля cottage_id и date объединенным первичным ключом .... тогда вы предотвратите перебронирование ... (добавляя booking_id к таблице COTTAGE_RESERVATION что построил Рэнди, для реляционного канала передачи данных) ....

...