
Alex
17.11.2016
11:55:04
Давай посчитаем риски

Mikhail
17.11.2016
11:55:05
и если даже по масштабам вселленной представить вероятность гибели от астеройда на наш век, она уже есть, такая же как попасть на 2й ууид

Alex
17.11.2016
11:55:11
если случится то где произойдет проблема?

Mikhail
17.11.2016
11:55:27
ууид генерят вместо праймари кей

Google

Mikhail
17.11.2016
11:55:29
частенько

Alex
17.11.2016
11:55:33
у тебя ведь все в транзакциях верно? значит оно откатится и пользователь увидит 500

Mikhail
17.11.2016
11:55:37
будет 2 юзера с одинаковым id

Alex
17.11.2016
11:55:44
Один раз на милион
Эм нет
как так?

Mikhail
17.11.2016
11:56:04
выше написал

Alex
17.11.2016
11:56:04
У тебя uuid не уникальный ключ в базе?
Что, постгрес не сможет следить за уникальностью uuid?

Mikhail
17.11.2016
11:56:30
если ты генеришь через постгрес нет
не уникальный
вроде бы нет

Alex
17.11.2016
11:56:47
а уникальный индекс прям совсем никак не навесить? что то не верится.

Google

Mikhail
17.11.2016
11:56:52
а если через луп с проверкой в базе то да
но луп я напишу за 3 минуты, а плагин ты будешь ставить и настраивать дольше

Alex
17.11.2016
11:57:19
Какой плагин?

Mikhail
17.11.2016
11:57:31
postgres uuid забей в гугле

Антон
17.11.2016
11:58:12

Alex
17.11.2016
11:58:17
А рельсовый AR сам генерить uuid не сможет?

Mikhail
17.11.2016
11:58:18
ты даже сейчас не знаешь решения, а я рубями первый раз за 10 минут решил, а ща уже знаю как метод собирать, это будет всяко быстрее чем ставить плагин и потом его настраивать и потом разбираться с уникальность
это лишний запрос
мой результат гугления показал что это единственный и надежный способ
остальные не такие кайфовые и не такие уникальные

Alex
17.11.2016
11:58:57
Чет мне кажется что если навесить уникальный индекс на uuid то все будет норм. Не проверял конечно же, но думаю что нормально должно работать

Антон
17.11.2016
11:59:00
def change
enable_extension 'uuid-ossp'
end

Mikhail
17.11.2016
11:59:07
да вот этот

Антон
17.11.2016
11:59:17
SecureRandom.uuid генерит
все умеют

Mikhail
17.11.2016
11:59:46
я думаю эта не та тема, которую стоит обсуждать. Я предпочитаю делать через доп запрос из рельсы

Alex
17.11.2016
11:59:47
Не, я про то что AR сам сгенерит uuid при вставке

Mikhail
17.11.2016
12:00:02
а вот для картинок сойдет и uuid от psql

Антон
17.11.2016
12:00:08

Alex
17.11.2016
12:00:11
мне просто пока не очень в это верится, ну ладно.

Google

Антон
17.11.2016
12:00:35

Alex
17.11.2016
12:00:53
не, я про то что нельзя заставить базу следить за уникальностью uuid
мне в это не верится.

Антон
17.11.2016
12:01:02
почему?
алгоритм такой

Alex
17.11.2016
12:01:33
Ну если ты навесишь уникальный индекс по uuid, оно не будет следить за тем чтобы ты не вставил дубль?

Антон
17.11.2016
12:01:48
этого не случится при моей жизни
это крайне! маловероятное событие

Mikhail
17.11.2016
12:03:42
это всего лишь 2 разных подхода при генерации ууид не более
вообще тема была про луп

Антон
17.11.2016
12:03:59
ну вот не нужен при uuid луп

Mikhail
17.11.2016
12:04:00
но чат умеет раздолбать идею и переехать

ⰿⰰⰾⱏ
17.11.2016
12:04:01
uuid зависит в т.ч. от времени, так что при разном времени вероятность совпадения двух uuid почти нулевая =)

Mikhail
17.11.2016
12:04:10

Антон
17.11.2016
12:04:22
ты странный, хотя я знал это :)

Alex
17.11.2016
12:04:23
http://softwareengineering.stackexchange.com/a/130295

Admin
ERROR: S client not available

Mikhail
17.11.2016
12:04:23
мне луп нужен

Alex
17.11.2016
12:04:32

Mikhail
17.11.2016
12:04:47
создает цикл в нем генерит ууид

Google

Alex
17.11.2016
12:04:58
а почему рубишный метод не юзаешь?

Mikhail
17.11.2016
12:05:44
loop do
uuid = SecureRandom.uuid
break uuid unless User.find_by(uuid: uuid)
end
все просто
ой

Alex
17.11.2016
12:05:59
а, точно. Знакомая штука.

Mikhail
17.11.2016
12:06:02
тока там break

Антон
17.11.2016
12:06:07
вот это оверхед, всем оверхедам оверхед :)

Alex
17.11.2016
12:06:15
а почему через базу не будешь следить за консистентностью?

Антон
17.11.2016
12:06:22
в энциклопедю оверхедов :)

Mikhail
17.11.2016
12:06:35
каждому свое

Alex
17.11.2016
12:06:52
Я ща погуглил, если случайно окажется что RNG плохой то можно часто коллизии ловить.
а плохой RNG часто в виртуалках.
Ну это ошибка выжившего же.

Антон
17.11.2016
12:07:56
мне всего 36 лет, когда бы я успел?

Alex
17.11.2016
12:08:03
Те у кого случились коллизии в продакшене обанкротились, очевидно же.
и они тут не сидят
?

Антон
17.11.2016
12:08:41
ну не живут столько люди :)

Mikhail
17.11.2016
12:09:49
тут проблемы не решали
ты просто как обычно верхушку схватил не читая

Google

Mikhail
17.11.2016
12:10:15
как в каждом разе, когда видишь слово джун, жабишь на меня

yopp
17.11.2016
12:10:30
да!