2013-07-10 2 views
3

Я ищу, чтобы написать какое-то приложение Rails, чтобы помочь пользователям забронировать временные интервалы в ресторане. Как это можно смоделировать таким образом, чтобы можно было оговорить бронирование и забронировать через браузер? У меня есть две модели:Как наилучшим образом смоделировать базу данных резервирования/встреч в Rails

class Restaurant < ActiveRecord::Base 
    has_many :reservations 


class Reservation < ActiveRecord::Base 
    belongs_to :restaurant 

    attr_accessible :name, :date, :time 

Сначала я играл с использованием хэш в модели ресторана, чтобы сохранить доступность, используя даты в качестве ключей. Но потом я понял, что базы данных Rails должны сериализовать хеши, и я хотел бы убедиться, что нет лучшего способа сделать это, прежде чем я погружусь в этот материал.

Я использую Postgres (если это применимо). Любая помощь приветствуется!

ответ

0

Ваша основная структура модели в порядке. Обратите внимание, что attr_accessible не соответствует современным рекомендациям, как и Rails 4. (Он был заменен на strong parameters)

0

Не имеет значения, какая база данных вы используете (хотя PG - солидный выбор), но общий что действительно важно.

Я не буду давать вам ответ на вставку для копирования, но, надеюсь, вам дадут какое-то направление.

So Ресторан может иметь много Бронирование в течение дня. Я предполагаю, что в каждом ресторане может находиться только столько людей и, следовательно, есть какой-то «резервный лимит» и Бронирование не может пересекаться.

Из-за ограничений, которые я представляю, ваш метод модели 2 будет работать. Вам просто нужно выяснить, как они должны взаимодействовать, чтобы работать, как вы планируете.

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

Ваши первоначальные отношения выглядят хорошо определенными. Но в другом ответе правильно указывается новый предпочтительный метод Rails 4.

Смежные вопросы