
Sergey
14.12.2017
09:10:56
ну кто в цепочке твоих микросервисов будет первым?

Victor
14.12.2017
09:11:18
Если так, то будет просто агрегатор который так же соберёт все что нужно и вернёт тебе своё содержимое, в данном случае это будет страница с многими компонентами

Sergey
14.12.2017
09:11:19
давай мы упростим до простого кейса когда нам ок что каждый микросервис умеет UI

Google

Victor
14.12.2017
09:12:18
Да, как то так

Sergey
14.12.2017
09:12:21
но если вернуться к твоему изначальному варианту когда каждый микросервис рендрит свои UI компоненты
кто будет в начале? например мы попадаем на UI компонент.... ну например - смотрим свой профиль

Victor
14.12.2017
09:13:15
Я видать просто не совсем правильно выразился изначально
Но да, если иметь связь один к одному то тут да
Смысла нет

Sergey
14.12.2017
09:14:59
а ну тогда мы вроде к консенсусу пришли)

Victor
14.12.2017
09:15:06
Таки да)

Evgenii
14.12.2017
09:54:21
Кто делал фейсбук бота? Юзаю https://github.com/pimax/fb-messenger-php
Никак не получается получить ответ.
Подписка на вебхук оформлена.
Запросы доходят на сервер, но ответ не приходит.

Roman
14.12.2017
13:11:06
Хочу поинтересоваться: как лучше хранить статус пользователя в БД: integer(1, 2, 3 ....) vs string(enabled, disabled, banned) ?

Big_Shark
14.12.2017
13:11:32

Sergey
14.12.2017
13:11:54
инты)

Maksim
14.12.2017
13:12:06
перечисления)

Google

Sergey
14.12.2017
13:12:14
не, только не enum
это базу взорвет

Maksim
14.12.2017
13:12:57
базу взрывают "справочные" таблицы) а перечисления - схера ли?)

Sergey
14.12.2017
13:14:54
попробуй добавить новое значение в enum на табличке большой

Maksim
14.12.2017
13:15:22
о какой базе речь?
и что подразумевается под большой базой? пол террабайта - достаточно большая?

Big_Shark
14.12.2017
13:20:27

Petr
14.12.2017
13:28:31
стринги!

Maksim
14.12.2017
13:30:29
в чём преимущества строк и недостаток интов?)

Ярослав
14.12.2017
13:31:54
стринги у барышень
инт

Roman
14.12.2017
13:32:36
ну, как я понимаю, стринги удобны для чтения если напрямую таблицу смотреть. Инты типа лучсше по перфомансу для выборок каких-то
Ребята, кто написал инт\стринг - можно аргументировать плз
интересно мнение

Maksim
14.12.2017
13:33:12
вау) решающий фактор для "большой базы" - удобствопросмотра :)
а как индексы по строкам делать - похер)

Roman
14.12.2017
13:33:50

Sergey
14.12.2017
13:34:02

Maksim
14.12.2017
13:34:40
Ну типа новый чёйс)
Почему-то на "большой базе" это сложно)

Sergey
14.12.2017
13:35:22
- переименовываем старый енам
- создаем новый енам
- заменяем тип на табличке
- удаляем старый

Google

Sergey
14.12.2017
13:35:28
может можно и проще

Dmitry
14.12.2017
13:36:07
угу, и делаем это на супер базе mysql с нетранзакционными DDL :)

Sergey
14.12.2017
13:36:45
ну допустим у нас нормальная субд

Maksim
14.12.2017
13:36:47
Ну я там за базу выше спросил, тишина)

Sergey
14.12.2017
13:36:49
постгрес например ;)

Dmitry
14.12.2017
13:37:44
ну типа "для постгреса енум ок, а для мускуля нет" - уже заставляет задуматься, а нужно ли оно ;)

Roman
14.12.2017
13:38:05

Maksim
14.12.2017
13:38:20
Для мускуля много чего не ок) но юзают же)

Sergey
14.12.2017
13:38:36
или о чем?

Dmitry
14.12.2017
13:39:02
задуматься, нужен ли енум ;)

Maksim
14.12.2017
13:39:20
Ну он сильно лучше строк :)

Sergey
14.12.2017
13:39:27
задуматься, нужен ли енум ;)
если у тебя мускуль - можно задуматься. Если нужна портируемость - можно задуматься. А если у тебя постгрес - нафига?

Maksim
14.12.2017
13:39:31
На "больших базах")

Dmitry
14.12.2017
13:40:00
ну, у нас же приложение, наверно... а ему глубоко пофиг - у тебя из базы придет енумное 'Mrs' или 3 ;)

Sergey
14.12.2017
13:40:15
все равно на пхп будет маппинг на константы
что у enum, что у инта

Roman
14.12.2017
13:41:12
И так, все-таки, есть какие-то доводы за или против стрингов\интов?

Dmitry
14.12.2017
13:41:16
вот вот... по этому инт - вполне себе решение... а на нормальных базах можно констрейнт навесить

Google

Roman
14.12.2017
13:41:20
енум не юзаем

Dmitry
14.12.2017
13:41:41
и в случае чего на внешний ключ спрыгнуть легко

Maksim
14.12.2017
13:42:06
Стринг точно в мусорку) енам или инт - другой вопрос

Roman
14.12.2017
13:42:22

Dmitry
14.12.2017
13:42:56
в любой, если у тебя 0 1 2 там только может быть, навешиваешь, на >=0 и <=2 :)

Roman
14.12.2017
13:43:21

Dmitry
14.12.2017
13:44:14
одно другому не мешает... можешь гарантировать, что никто никогда не полезет в базу кроме твоего приложения?

Maksim
14.12.2017
13:44:31

Dmitry
14.12.2017
13:44:36
если есть возможность, то почему бы и не сделать

Admin
ERROR: S client not available

Maksim
14.12.2017
13:44:57
там с точки зрения производительности разница если и есть, то где-то на уровне погрешности. Чего про строки не сказать

Roman
14.12.2017
13:45:07

Dmitry
14.12.2017
13:45:19
ну да, а это проблема разве?

Roman
14.12.2017
13:45:32

Sergey
14.12.2017
13:45:44
без CASE

Petr
14.12.2017
13:49:07
короткие строки и числа сравниваются примерно с одинаковой скоростью. если таблица очень большая - то инты гораздо быстрее строк. но если это тысячи или десятки тысяч строк - то разницу не заметишь.

Maksim
14.12.2017
13:49:45
поэтому "большая база" всегда было в ковычках) у кого-то и 5 гигов фултекстов суммарно - омфг размеры

Roman
14.12.2017
13:50:22

Google

Maksim
14.12.2017
13:50:38
если не енам, то очевидно инт)

Petr
14.12.2017
13:50:54
к тому же если все статусы начинаются с разных символов, то сравниватся по факту только первые символы при неравенстве. в этом случае строки по скорости будут примерно равны числам

Sergey
14.12.2017
13:51:31

Maksim
14.12.2017
13:51:57
ну я сам енамы юзаю) мне ок)

Sergey
14.12.2017
13:52:17
а я строки) и мне ок) ну инты тоже и енамы... короч как пойдет

Petr
14.12.2017
13:52:20
для больших таблиц используем int. от enum отказались из-за проблем при изменении набора статусов. хотя по факту они не так часто и меняются
в маленьких таблицах - строки

Maksim
14.12.2017
13:52:54
что бы в доктрину лишнее не запихивать?)

Sergey
14.12.2017
13:53:35

Maksim
14.12.2017
13:54:06
в мускуле альтер переделали и теперь он почти, как у взрослых) без тупых переливаний на сутки)
но с оговорками)

Petr
14.12.2017
13:54:44
отказались уже давно, лет 5 назад. из-за того что альтер на нагруженных таблицах плохо проходит, приходится ночью выполнять. с тех пор не проверяли))

Dmitry
14.12.2017
13:55:17
Про постгрес ;)
Comparisons involving an added enum value will sometimes be slower than comparisons involving only original members of the enum type. This will usually only occur if BEFORE or AFTER is used to set the new value's sort position somewhere other than at the end of the list. However, sometimes it will happen even though the new value is added at the end (this occurs if the OID counter “wrapped around” since the original creation of the enum type). The slowdown is usually insignificant; but if it matters, optimal performance can be regained by dropping and recreating the enum type, or by dumping and reloading the database.

Sergey
14.12.2017
13:55:38

Dmitry
14.12.2017
13:55:53
те перевести? ;)

Maksim
14.12.2017
13:56:19

Sergey
14.12.2017
14:04:26
те перевести? ;)
да я прочитал, мне не понятно к чему ты это привел. Там же написано в конце - просто пересоздайте тип.
и то для большинства это не особо критично

Dmitry
14.12.2017
14:06:10
вот не уверен, что пересоздание типа дешевая операция... добавление нового значения в тип - должна быть дешевой, а смена типа колонки... не рискнул бы я такое делать в продакшене

Sergey
14.12.2017
14:06:38
не уверен - проверь)

Dmitry
14.12.2017
14:07:23
угу, "проверь, авось продакшн не завалится" ;)

Sergey
14.12.2017
14:07:23
строить вывода на предположениях без какого либо желания это проверять - ну такое....