|
|
|
Нужна идея по хранение периодами времени.
|
|||
|---|---|---|---|
|
#18+
Добрый день всем. Есть места на сайте (баннеры). Возник такой вопрос: как лучше хранить в базе периоды когда они свободны, резевированные и когда они заняты. Лучше с точки зрения оптимизация при выборе свободных. Есть идея в 3 колонки: 2014 10 0001222222211100022211100011201 1 - год 2 - месяц 3 - строка где каждая позиция 1 день (0 - свободный, 1-резевирован, 2-занят) но не знаю если эта хороший вариат. Жду Ваше мнения. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 13:21:13 |
|
||
|
Нужна идея по хранение периодами времени.
|
|||
|---|---|---|---|
|
#18+
Периоды резервирования всегда состоят из календарных месяцев? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 13:34:07 |
|
||
|
Нужна идея по хранение периодами времени.
|
|||
|---|---|---|---|
|
#18+
Можно резервировать по дням. Например: 2014-10-01 - 2014-10-20 2014-10-25 - 2014-11-10. В записи резерваций так и будет С - ДО. Но я хотел дабавлять эту информацию (2014 10 0001222222211100022211100011201) щтобы легче было выбирать свободных мест. На пример если пользователь ищет свободные места С 2014-10-02 - ДО 2014-10-28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 13:43:34 |
|
||
|
Нужна идея по хранение периодами времени.
|
|||
|---|---|---|---|
|
#18+
Postolachi Serghei3 - строка где каждая позиция 1 день (0 - свободный, 1-резевирован, 2-занят) Денормализация. Плохо. Да и для описанной обработки так себе... Чтобы выбрать оптимум, неплохо бы ещё описАть и бизнес-процессы. Ну выбрал свободный период - что дальше? Некий период прошёл - что дальше? Приходится ли выбирать занятые периоды? резервированные? зачем? что с ними могут делать? Нельзя строить базу, оперируя только кусочком задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 14:19:11 |
|
||
|
Нужна идея по хранение периодами времени.
|
|||
|---|---|---|---|
|
#18+
Postolachi Serghei, Дата начала периода, дата окончания периода -- и данные. Можно сделать словарь периодов , тогда там Period(ID: date_begin, date_end) и в данных Data( id: period_id, ... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 14:40:09 |
|
||
|
Нужна идея по хранение периодами времени.
|
|||
|---|---|---|---|
|
#18+
[quot Akina]Postolachi SergheiЧтобы выбрать оптимум, неплохо бы ещё описАть и бизнес-процессы. Ну выбрал свободный период - что дальше? Некий период прошёл - что дальше? Приходится ли выбирать занятые периоды? резервированные? зачем? что с ними могут делать? если в нескольких словах то сайт продаёт баннеры. И клиенты могут выбирать период когда им хочется покупать эти места. Отсюда и мой вопрос - как сделать чтобы было быстрее при выборе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 15:37:51 |
|
||
|
Нужна идея по хранение периодами времени.
|
|||
|---|---|---|---|
|
#18+
если период старт-финиш, величина квантуеться :):):) тоесть скажем нельзя с любого времени по любое. допустим минимум час и можно токо с ХХ:00:00 по УУ:00:00 тоесть ровно какойто один или несколько часов, или дней, или интервал в два часа, но главное что вот либо так, либо ника. тогда и вести учот времени в этих интервалах. вот юниксвремя, квантуеться, минимальный интервал секунда, и представляеться ввиде количества секунд. если у тебя час, минимум, бери тогда представляй ввиде числа, которое есть число часов с начала эпохи юникс. и тогда ты не будешь работать с интервалами, только с обычными числами. перевод времени в число, и числа в ремя(интервал час) число --- число*60*60=всек --- юникс-время(всек) --- в любой другой формат для юзера время --- - разделить на 3600 нацело, получаем число. тоесть перейти на измерение времени в интервалах а не в секундах и тогда правда для записи с 5 часов по 10 часов надо будет вставить 6 строк, для 5 часа, 6...10 думаю это быстрее быдет для выборки, чем работать с интервалами... и легче при проверке (а то мало ли..у тебя занято с 9 по 11, а юзер подделав форму отправил запрос на с 10 до 13...трудно проверить пересечение интервалов для субд) а так будет проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 20:56:56 |
|
||
|
Нужна идея по хранение периодами времени.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453если период старт-финиш, величина квантуеться :):):) тоесть скажем нельзя с любого времени по любое. допустим минимум час и можно токо с ХХ:00:00 по УУ:00:00 тоесть ровно какойто один или несколько часов, или дней, или интервал в два часа, но главное что вот либо так, либо ника. тогда и вести учот времени в этих интервалах. вот юниксвремя, квантуеться, минимальный интервал секунда, и представляеться ввиде количества секунд. если у тебя час, минимум, бери тогда представляй ввиде числа, которое есть число часов с начала эпохи юникс. и тогда ты не будешь работать с интервалами, только с обычными числами. перевод времени в число, и числа в ремя(интервал час) число --- число*60*60=всек --- юникс-время(всек) --- в любой другой формат для юзера время --- - разделить на 3600 нацело, получаем число. тоесть перейти на измерение времени в интервалах а не в секундах и тогда правда для записи с 5 часов по 10 часов надо будет вставить 6 строк, для 5 часа, 6...10 думаю это быстрее быдет для выборки, чем работать с интервалами... и легче при проверке (а то мало ли..у тебя занято с 9 по 11, а юзер подделав форму отправил запрос на с 10 до 13...трудно проверить пересечение интервалов для субд) а так будет проще. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 13:45:05 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=164&tid=1834268]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 299ms |

| 0 / 0 |
