Как мне хранить день недели в рельсах? - PullRequest
1 голос
/ 06 декабря 2011

Я хочу хранить с понедельника по воскресенье, и в настоящее время я использую smallint, но мне интересно, как лучше всего представить это в моей модели?По сути, я хочу отображать слова «понедельник-> воскресенье», но понимаю, что это не самый умный способ сохранить его в БД.Должен ли я просто использовать ассоциативный массив?

1 Ответ

2 голосов
/ 06 декабря 2011

Есть, конечно, несколько способов сделать это.Если вы всегда будете хранить последовательные дни, то, возможно, будут в порядке два отдельных столбца базы данных, представляющие даты начала и окончания (индекс 1-7) (с методом преобразования из индекса дня в текстовое имя).

Это может работать для вашей ситуации, однако я считаю, что чаще вам понадобится гибкость вставки нескольких последовательных дней.Один из методов, который я использовал недавно (чтобы минимизировать запросы SQL), - просто добавить 7 полей логической базы данных в вашу таблицу, представляющую Sun-Mon.Это позволит вам использовать такие методы, как @ event.monday?Вспомогательный метод может объединять несколько дней подряд для отображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...