Ruby on Rails и MySQL вставка и выбор еженедельных событий - PullRequest
1 голос
/ 07 июля 2011

Для проекта, над которым я сейчас работаю, пользователь должен иметь возможность добавлять определенную дату, еженедельные даты (например, каждое среду 12:00) или месячные даты (например, каждый 1-й месяц 8 вечера).Даты - это основная вещь, которую пользователь будет искать.И то, что первое предстоящее свидание можно найти, является самым важным.

Задумался над этим некоторое время, но я не уверен, куда идти с этим.Это то, что я придумал:

Добавьте определенное количество записей для данных дат и обновляйте их каждый день или неделю.

Проблема здесь в том,Что мне делать, когда пользователь ищет 2020, а запись не добавлена, потому что это так долго?Или что, если время изменилось.Как мне легко найти нужные записи обратно?

1 Ответ

1 голос
/ 07 июля 2011

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

Моей первой мыслью было бы отойти от столбцов отметок времени для этого. Это отчасти для того, чтобы вам не нужно было создавать несколько записей, а также было намного проще выполнять запросы.

Я бы разделил логические единицы на разные столбцы. Как-то так, на даты, которые вы описали:

id | wday | mday | hour | minute |
----------------------------------
1  | 3    | NULL | 12   | 00     |
2  | NULL | 1    | 20   | 00     |

Таким образом, вам будет очень легко найти даты для сред (Model.where(:wday => 3)) или первого числа каждого месяца (Model.where(:mday => 1)), и это также позволит вам отображать результаты для любого года, месяца или неделю и т. д. до конца вечности.

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