|
|
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrixЭто так, но при условии, что в любой момент времени забронирован весь год. Тогда и данные хранить смысла нет. :) статус 2 (свободен) Хранить надо события, которые произошли. А не резервировать место, под события, которые возможно произойдут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 16:33 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrixможно их в архив скидывать в конце года, чтобы таблицу не растить. Зачем? У тебя аллергия на большие таблицы?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 16:38 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
Gloryстатус 2 (свободен) Хранить надо события, которые произошли. А не резервировать место, под события, которые возможно произойдут Храним событие: Есть бронь с 01.05 по 05.05 И бронь с 09.05 по 10.05 соответственно храним эти 2 события. И как по ним поиск сделать? Dimitry Sibiryakov Зачем? У тебя аллергия на большие таблицы?. Ну мне кажется, что чем больше таблица тем медленнее она работает и медленнее по ней поиск, хотя может я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 17:17 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrix, Насколько большая? 1м записей - не много, при правильных индексах всё будет летать у меня база около 30г, таблички по 16млн. есть, живём :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 17:31 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrixЕсть бронь с 01.05 по 05.05 И бронь с 09.05 по 10.05 соответственно храним эти 2 события. И как по ним поиск сделать? Поиск чего ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 17:44 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
GloryПоиск чего ? Ну к примеру, нужен свободный номер с 06.05 по 08.05 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 18:15 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrixНу к примеру, нужен свободный номер с 06.05 по 08.05 Это элементарная задача не пересечение периодов where period1_beg > period2_end and period1_end < period2_beg ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 18:27 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
GloryЭто элементарная задача не пересечение периодов where period1_beg > period2_end and period1_end < period2_beg Вы не можете писать конкретнее!? period1_beg,period2_end,period1_end,period2_beg - что из этого переменная содержащая искомую дату, а что столбец таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 18:54 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrixperiod1_beg,period2_end,period1_end,period2_beg - что из этого переменная содержащая искомую дату, а что столбец таблицы? Это два периода Все равно, что из них что ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 18:56 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
Только при пересечении периодов нужно аккуратно посмотреть чтобы с какой-то стороны были <= >= а с другой чистые < >. В школе на математике рисуют отрезки одна точка сплошная, другая - выколотая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 18:56 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
GloryЭто два периода Все равно, что из них что А будут при таком поиске использоваться индексы? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 19:08 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
GloryЭто два периода Все равно, что из них что Таблица содержит 2 события бронь с 01.05 по 05.05 (статус 2) бронь с 09.05 по 10.05 (статус 2) Нужно найти свободный номер с 06.05 по 08.05 Если сделать так: select room_id from shedule where period_end > 06.05 and period_start < 08.05 and status_id=2 Чет чепуха выходит. В этот запрос попадает первая бронь. И даже если бы не попадала, то максимум мы получим пустой результат если таблица содеждит только брони, а как свободный номер получить? Чет я запутался вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 19:38 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
Ага вроде сообразил. Можно искать номера которые на эти даты забронированны и вычитать их из выборки типа SELECT * from rooms where id not in (select * from shedule where period_start <= '06.05' and period_end >= '08.05' ) Glory, Вы это подразумевали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 19:58 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
Недавно обсуждали. http://www.sql.ru/forum/actualthread.aspx?tid=922331 2 Glory Мое мнение: периоды здесь невыгодны. Лобовое решение - материализация в виде строчки на каждый день для каждого номера проще для восприятия, а значит написания, тестирования и поддержки. Плюс запрет накладок через ограничение уникальности проще и надежнее чем исключение через триггер. softrix Нужно найти свободный номер с 06.05 по 08.05 Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2012, 20:02 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
сделал бы две таблицы: 1) Текущее состояние номера 2) История вторая таблица есть ничто иное как лог изменений состояний номера с датой начала и конца состояния. при изменении состояния - в таблице истории закрываем старое состояние датой изменения и ложим новую строчку с датой изменения+секунда/час/день/месяц - в общем минимальная неделимая единица для этой даты - все! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2012, 18:15 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
SirMixсделал бы две таблицы: 1) Текущее состояние номера 2) История вторая таблица есть ничто иное как лог изменений состояний номера с датой начала и конца состояния. при изменении состояния - в таблице истории закрываем старое состояние датой изменения и ложим новую строчку с датой изменения+секунда/час/день/месяц - в общем минимальная неделимая единица для этой даты - все!Текущее состояние номера конечно нужно, но к задаче это не относится. Это как бы просто карточка номера, понятно, что она есть. История здесь не нужна, нет же задачи получить реальное использование номера. Тоесть может такая задача и есть, но вопрос не про неё. SERG12572 Glory Мое мнение: периоды здесь невыгодны. Лобовое решение - материализация в виде строчки на каждый день для каждого номера проще для восприятия, а значит написания, тестирования и поддержки. Плюс запрет накладок через ограничение уникальности проще и надежнее чем исключение через триггер.По моему тоже, номеро-дни более правильное решение таких задач... К тому же, более просто решаются более сложные задачи, типа номер забронирован с 1 до 15, при этом с 1 по 5 там будет жить 2 человека, а с 6 нужно поставить ещё койку. И всё это относится к одной брони. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2012, 22:55 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrixЕсть задача сделать для сети отелей поиск свободного номера по дате. Есть наверное более простое решение!? не простое, но правильное: операции: номер занят дата время номер свободен дата время номер зарезервирован дата время статус расчитывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 10:49 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrix, Насчет периодов тебе правильно подсказали. Но учитывай особенность продления клиентом пребывания в номере. И вообще там есть целая куча моментов. Поэтому для начала пообщайся с администраторами отелей, думаю откроешь много нового в этом направлении. Я как-то сталкивался но неплотно, поэтому и посылаю к тем у кого найдешь ответы по структуре и методам работы. Зная это уже можно лепить таблицы. За оптимизацией набросков можешь приходить на форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 12:58 |
|
||
|
Как лучше хранить и сделать поиск по большому кол-ву данных
|
|||
|---|---|---|---|
|
#18+
softrix, Вы извините, но как то странно рассуждаете о бронировании (о планировании работы производственного участка вашего предприятия). Для того, чтобы бронировать, Вы должны предоставить свободный ресурс для бронирования, правильно? Бронирование отнимает кусочки этого ресурса, но какие-то кусочки остаются все еще, правильно? А Вы рассуждаете о занятых кусочках при решении задачи бронирования все еще свободных)) Очень странно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:28 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37740806&tid=1541748]: |
0ms |
get settings: |
9ms |
get forum list: |
24ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 494ms |

| 0 / 0 |
