
Mikhail
23.09.2016
17:09:31
это расписание на дни
каждый день разное время

Сергей
23.09.2016
17:09:43
старые архивировать

ojab
23.09.2016
17:10:15
зачем что-то архивировать?

Google

Антон
23.09.2016
17:10:30
10к записей с учетом что все пришли днем это всего 833 записи в час

Сергей
23.09.2016
17:10:35
чтобы не хранить в базе уже не нужные записи

Антон
23.09.2016
17:10:36
я не понимаю в чем паника

Mikhail
23.09.2016
17:10:38
Проблема не в час
Да не, проблема же, что в бд в которой например 50 миллионов записей выборку сделать
будет тормозить нет?

ojab
23.09.2016
17:11:20
хз

Mikhail
23.09.2016
17:11:24
Просто с ростом клиентов будет табличка timetable заполняться быстрее

ojab
23.09.2016
17:11:28
зависит от множества факторов
timetable фиксированные для каждого клиента?

Сергей
23.09.2016
17:11:42
если будет тормозить
тогда делать архивацию старых
но для постгреса 50М записей это норм
Если индексы правильные

Mikhail
23.09.2016
17:11:59
timetable на каждое кафе например каждого клиента

Google

Mikhail
23.09.2016
17:12:08
на каждое время
да 50 миллионов реально набрать за 3-6 месяцев
если писать каждое время как запись в бд
надо обходить

ojab
23.09.2016
17:12:42
хранишь timetable для клиентов в одной таблице и занятые слоты в другой

Mikhail
23.09.2016
17:12:47
надо писать только где бронь прошла
ну я про слоты и говорю

Антон
23.09.2016
17:13:05
я предлагаю дорости хотябы до 5м записей, а потом уже решать проблему

Сергей
23.09.2016
17:13:21

Антон
23.09.2016
17:13:22
у меня 4,7м записей, я подумываю, но пока забиваю

Mikhail
23.09.2016
17:13:27
у меня подобную штуку люди за неделю 10к набили
а они еще не начали работать

Антон
23.09.2016
17:13:44
будет 5м поговорим

Mikhail
23.09.2016
17:13:47
и это только тестовые свои забили

Антон
23.09.2016
17:13:54
ок

Mikhail
23.09.2016
17:13:56
Да я не спрашиваю как оптимизировать запрос

Антон
23.09.2016
17:13:59
у меня тестовые сделали 200к

Сергей
23.09.2016
17:14:08
я просто не понимаю, зачем хранить старые записи, которые не актуальны?

ojab
23.09.2016
17:14:22
50_000_000 / (24*4) = 520_000 клиентодней

Антон
23.09.2016
17:14:24

Google

Mikhail
23.09.2016
17:14:25
Я спрашиваю сильно ли я потеряю если буду сравнивать дефолтный календарь с бронями на неделю и мержить их находу

ojab
23.09.2016
17:14:37
(я не думаю что гранулярность будет меньше 15 минут
нет, не сильно

Антон
23.09.2016
17:15:05
а что такое гранулярность?

ojab
23.09.2016
17:15:20
минимальная длина брони

Антон
23.09.2016
17:15:37
это отраслевая какая-то фигня?

ojab
23.09.2016
17:16:13
нет, это здравый смысл. Я думаю что вряд ли где-то нужно записываться для действа, которое занимает меньше 15 минут

Антон
23.09.2016
17:17:04
ну наверное
да влюбом случае, преждевременная оптимизация плохо
постфактум тоже плохо

Mikhail
23.09.2016
17:17:29

Антон
23.09.2016
17:17:36
надо вовремя оптимизировать

Mikhail
23.09.2016
17:17:49
я же не спрашиваю как быстрее отрендерить хелло ворлд
через реакт компонент или js.erb паршиал

Антон
23.09.2016
17:18:28
я бы делал через erb
erb переверстать в реакт проще когда бизнес готов
я бы не нанимал фронта пока бизнес не перейдет на самоокупаемость вообще

Сергей
23.09.2016
17:19:21

Mikhail
23.09.2016
17:19:42
вот тут или я создам табличку и буду генерить на неделю вперед слоты под время или я сделаю календарь и на его основе буду мержить в него брони и выдавать юзеру

Google

Антон
23.09.2016
17:20:10
давай созвонимся в понедельник, я протрезвею

ojab
23.09.2016
17:20:19

Mikhail
23.09.2016
17:20:24
я теряю секунду примерно на sypex геолокации
а там только определие гео и я на сторону не звоню, на ходу из файла читаю
вот и 2 запроса плюс возня с массива не отнимет ли время

ojab
23.09.2016
17:21:42
тут большая проблема — как версионирование расписаний прикрутить

Mikhail
23.09.2016
17:21:44
не будет ли дольше чем простая выбора в миллионой бд

Антон
23.09.2016
17:21:49
сколько клиентов, сколько секунд потерь на клиента?

ojab
23.09.2016
17:21:57
потому что при смене расписания будет геморрой

Mikhail
23.09.2016
17:22:13
это да

Admin
ERROR: S client not available

Mikhail
23.09.2016
17:22:20
расписание будет изначально дефолтное
на 1 неделю
далее 1-2-3-4 неделя месяца
из расписания беру время, дату и прайс
и по умолчанию она is_free: true
вот я ее получаю и рендерю
Если юзер выбрал время и записался
то я планирую получать это расписание
получать на неделю вперед бронь для текущего «кафе»

Google

Mikhail
23.09.2016
17:24:20
и рендерить расписание и если время занято то is_free: false
придется повозится с массивами на ходу, но тогда у меня не будет кучи ненужных записей
решить только версионность расписания
можно версию раздавать какое сейчас включено и такая же версия расписания на брони
и в итоге если мой клиент работает с версией 2 например то для нее тянуться в2 брони
я вчера весь вечер гуглил и таймслот это боль еще та

ojab
23.09.2016
17:26:38
time_table "version, client_id, day_of_week(0-6), time (interval), price"
timetable_version "client_id, start_time, finish_time"
bookings "time_table_id customer_id date"

Mikhail
23.09.2016
17:27:10
Это канает в гостинице, там нету расписания. Там юзер их создает.

ojab
23.09.2016
17:27:26
джойнишь time_table с bookings за дату — получаешь все данные для расписания
единственная проблема — в дату перехода с версию на версию нужно будет что-то костылить

Mikhail
23.09.2016
17:28:03
да

ojab
23.09.2016
17:28:11
но если время перехода с начала суток — никаких проблем

Mikhail
23.09.2016
17:28:21
время перехода сначало суток

ojab
23.09.2016
17:28:29
таймзона одна?

Mikhail
23.09.2016
17:28:45
Нет

ojab
23.09.2016
17:28:53
тогда с начала часа
но тоже ок

Mikhail
23.09.2016
17:29:08
Но это не важно. Мы пишем и понимаем все относительно города в котором бронь
Поэтому если кафе создается для екб например
то и время брони ЕКБ понимают

ojab
23.09.2016
17:30:10
лучше так не делать, ибо у регионов бывает изменение таймзон, например
о переходе на летнее/зимнее время, благо, беспокоится не стоит если только РФ

Mikhail
23.09.2016
17:31:52
ну я нахожусь в екб и когда забиваю я пишу в 10 утра например