Как Вы сохранили бы возможно повторяющиеся времена?

Я также обновил Andriod Studio до версии 3.3 и столкнулся с этой проблемой. Сначала я подумал, что мне нужно понизить версию Studio, затем я увидел значок I EYE и пометил Show Layout Decorations . См. Ниже

enter image description here

6
задан 2 revs 1 October 2010 в 09:10
поделиться

6 ответов

Существуют сложные решения и легкие решения. Два самых легких решения:

  1. Разветвитесь повторяющиеся события некоторое постоянное количество экземпляров или некоторый фиксированный диапазон дат в будущем. Снабдите FK recurrence_id каждым экземпляром, который указывает на описание повторения и допускает массовое редактирование и отмену.

    Преимущество pre-calced разветвляется, подход - это, делает очень очень легким реализовать исключения повторения, которые почти наверняка будут первым запросом новых функций, который Вы получаете.

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

Кроме того Вам просто нужно решение для хранения правила повторения, что работы с тем, что Вы используете для вычисления повторений. (например, если Вы используете iCalendar, включают библиотеку, Ваша схема является varchar (255) со значениями RRULE в ней),

Если Вы имеете к калькулятору повторения самокрутки, и Вы хотите сохранить его простым, ограничивая Ваши повторения ежедневной газетой, еженедельно, ежемесячно, или ежегодные покрытия Ваш первый 80%-й вариант использования, и тривиально легко к calc.

На которую точку Ваша потенциальная схема повторения смотрит что-то как:

id
recurrence_start
recurrence_end
type (daily|weekly|monthly|yearly)
day_of_week (for weekly)
month
day_of_month

И откровенно сложные решения, вероятно, не стоят того :)

8
ответ дан 8 December 2019 в 16:12
поделиться

Попробуйте проект с открытым исходным кодом, который имеет функциональность планирования?

Некоторый интерфейс/определения планирования

http://tools.ietf.org/html/rfc4791

и

http://en.wikipedia.org/wiki/ICalendar

1
ответ дан 8 December 2019 в 16:12
поделиться

Это походит на "повторяющееся событие" такой как в Outlook. Я использовал бы одну таблицу под названием RecurrenceType для хранения каждого периода времени (ежедневно, еженедельно, и т.д.), другая таблица под названием Событие woud относится ключом к RecurrenceType. Будущие даты большинства типов повторения могут затем быть вычислены с помощью стандартных функций Даты.

1
ответ дан 8 December 2019 в 16:12
поделиться

Martin Fowler написал действительно большую работу об этом. Можно найти много тех же идей, которые он обсуждает в карлике, библиотеке Ruby для контакта с временными выражениями.

3
ответ дан 8 December 2019 в 16:12
поделиться

Проблема состоит в том, что существуют бесконечные возможности для определения такого интервала. Например - "Первый понедельник через месяц, если дата даже, но не 4, и месяц не является февралем долгого года". Как далеко Вы готовы пойти? В конечном счете необходимо будет просто заставить пользователей ввести в булевом выражении, которое оценивает к TRUE в дни, что событие должно повториться. Не очень хороший с точки зрения UI.

Необходимо выбрать некоторые ограничения для системы. После того как Вы знаете их, остальные должны быть легкими - или по крайней мере соответствующими на ТАК.:)

1
ответ дан 8 December 2019 в 16:12
поделиться

Описанная здесь схема фиксирует повторяющиеся даты

http://github.com/bakineggs/recurring_events_for

1
ответ дан 8 December 2019 в 16:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: