|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Мимопроходящийибо уникальность именно ЭТОГО ключа не несёт никакой смысловой нагрузки. Именно в этой уникальности как раз вся "смысловая нагрузка", для обеспечения условия "у пользователя не может быть более двух активных бонусов одномоментно" с бонусом в виде побочного эффекта хранения истории активации бонусов. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 18:56 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
rdb_dev, продолжай монолог ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 19:24 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
rdb_devhvlad, ты хочешь сказать, что для таблицы: Код: plsql 1. 2. 3. 4. 5. 6. 7.
Сервер FirebirdSQL не обеспечить уникальность составного ПК? Тогда тут дело совсем не в пользователях... Дело не в сервере Firebird. Дело в устройстве Мироздания. И составной, не составной - рояли не играет. https://yandex.ru/images/search?text=дискретность времени&stype=image&lr=2&source=wiz Кстати, когда-то, когда был молод и глуп, в смысле лет эдак сорока, наступил на violation timestamp-PK в архиве примерно через месяц после его создания. И всего-то при паре десятков пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 20:31 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Старый плюшевый мишкакогда-то, когда был молод и глуп, в смысле лет эдак сорока, наступил на violation timestamp-PK в архиве примерно через месяц после его создания. "В те времена далёкие, теперь почти былинные" current_timestamp был с точностью в целые секунды и никто не умел работать с их долями. К счастью, сейчас такие нубы уже перевелись. Наверное. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 20:38 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Сисдба МастеркеевичОба решения не нравятся, потому что требуют заводить какие-то дополнительные объекты, являющиеся, по сути, костылями. При активизации любого бонуса у юзера сброс молча в inactive предыдущего его активного в before триггерах по бизнес-логике не прокатывает? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 20:45 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov"В те времена далёкие, теперь почти былинные" current_timestamp был с точностью в целые секунды и никто не умел работать с их долями. Да ладно. Или ты Абрамс вспомнил? Уже в IB4 точно с миллисекундами был. А вот родной его WISQL их не отображал просто, это факт. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 20:48 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Старый плюшевый мишкаУже в IB4 точно с миллисекундами был. Тип-то всегда был с четырьмя знаками после точки, а вот помянутая контекстная переменная такого не умела, как и подавляющее большинство компонент доступа. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2019, 22:10 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
rdb_devМимопроходящийибо уникальность именно ЭТОГО ключа не несёт никакой смысловой нагрузки. Именно в этой уникальности как раз вся "смысловая нагрузка", для обеспечения условия "у пользователя не может быть более двух активных бонусов одномоментно" А одномоментно - это как? А если в соседнюю милисекунду - это уже не одномоментно и допускается? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 03:57 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Читаю ветку и ... в недоумении. Уникальность индексами здесь вообще не нужна. Одновременная в рамках действия транзакции вставка двух бонусов превращается только в головную боль, но никаких бонусов не даёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 09:03 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Ну вы тут накидали, стоило отойти ненадолго ... :)) Уникальность нужна только для активного бонуса. Неактивных, например, выданных пользователю, но не активированных им, может быть сколько угодно. В том числе и при наличии активного. Старый плюшевый мишкаСисдба МастеркеевичОба решения не нравятся, потому что требуют заводить какие-то дополнительные объекты, являющиеся, по сути, костылями. При активизации любого бонуса у юзера сброс молча в inactive предыдущего его активного в before триггерах по бизнес-логике не прокатывает? Триггеры не помогут, ибо тимлид их не любит, поэтому у нас их нет. Вообще. Как и процедур. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 10:11 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Сисдба МастеркеевичТриггеры не помогут, ибо тимлид их не любит, поэтому у нас их нет. Вообще. Как и процедур.Каким образом тогда активируется бонус? Кто деактивирует предыдущий активный? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 10:14 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Сисдба МастеркеевичТриггеры не помогут, ибо тимлид их не любит, поэтому у нас их нет. Вообще. Как и процедур. Вся логика на клиенте? Зачем тогда париться насчёт этого хитрого индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 10:17 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Сисдба МастеркеевичУникальность нужна только для активного бонуса. Повторяю медленно: в чём проблема сделать этот бонус полем в таблице пользователей? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 12:18 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Сисдба МастеркеевичТриггеры не помогут, ибо тимлид их не любит, поэтому у нас их нет. Вообще. Как и процедур. Аааа... Бег в мешках с барьерами по подвесной проволоке? Уважаю. Почти. Ибо индексы он таки любит, прослабел. Самурай без меча подобен самураю с мечом, но только без меча. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 12:35 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
WildSeryЧитаю ветку и ... в недоумении. Уникальность индексами здесь вообще не нужна. Одновременная в рамках действия транзакции вставка двух бонусов превращается только в головную боль, но никаких бонусов не даёт.В таком случае у меня возникает несколько вопросов: 1. Кто будет одномоментно с двух разных АРМов активировать бонус одному и тому же пользователю, а главное - по какому событию? 2. Если, всё же, два оператора АРМа умудрились одномоментно - в одноу и ту же миллисекунду запустить транзакции на активацию бонуса для конкретного пользователя, и оператор-неудачик получил от сервера отлуп о дублировании уникального индекса, то это тут же становится головной болью разработчика/администратора БД или, всё же, это штатное поведение системы, адекватно воспринимаемое обученным оператором? 3. Если бонус активирует сам пользователь через веб-интерфейс, то как он одномоментно - с точностью до миллисекунды нажмёт рядом с бонусом кнопку "активировать" с двух разных веб-страниц? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 13:25 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСисдба МастеркеевичУникальность нужна только для активного бонуса. Повторяю медленно: в чём проблема сделать этот бонус полем в таблице пользователей? Похоже на денормализацию. Тимлид не одобрит. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 13:27 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
KreatorXXIПохоже на денормализацию. Тимлид не одобрит. Никакой денормализации. Текущий бонус - атрибут клиента, ссылка на таблицу бонусов. Все три НФ удовлетворённо кивают. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 13:35 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
rdb_devВ таком случае у меня возникает несколько вопросов: 1. Кто будет одномоментно с двух разных АРМов активировать бонус одному и тому же пользователю, а главное - по какому событию? 2. Если, всё же, два оператора АРМа умудрились одномоментно - в одноу и ту же миллисекунду запустить транзакции на активацию бонуса для конкретного пользователя, и оператор-неудачик получил от сервера отлуп о дублировании уникального индекса, то это тут же становится головной болью разработчика/администратора БД или, всё же, это штатное поведение системы, адекватно воспринимаемое обученным оператором? 3. Если бонус активирует сам пользователь через веб-интерфейс, то как он одномоментно - с точностью до миллисекунды нажмёт рядом с бонусом кнопку "активировать" с двух разных веб-страниц?Эти вопросы нужно было задавать до того, как предлагать ерунду, и уж точно до того, как её отстаивать. 1. Не твоё дело. Absolutely. Если физическая возможность есть, ею воспользуются. 2. С какого перепугу ты решил, что последняя по времени ввода запись является правильной ? С чего ты взял, что для повторной активации ранее введённого и ныне неактивного бонуса, его нужно ввести заново (и удалить старую запись, убив часть истории, которую ты тут так сильно хочешь) ? 3. См п1 и п2 Я уже писал, что у тебя нет реального опыта работы в реальных условиях ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 13:35 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
а я не умею так культурно и без матов... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 13:40 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Сисдба МастеркеевичНу вы тут накидали, стоило отойти ненадолго ... :)) Уникальность нужна только для активного бонуса. Неактивных, например, выданных пользователю, но не активированных им, может быть сколько угодно. В том числе и при наличии активного. Я тебе за бонусы еще один умный вещь скажу. Завтра придут и потребуют сроки протухания бонусов. Как активированных, так и неактивированных. А послезавтра - сроки начала активации оных. И еще вчера - текущее сальдо этих самых бонусов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 13:59 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
hvladЭти вопросы нужно было задавать до того, как предлагать ерунду, и уж точно до того, как её отстаивать. 1. Не твоё дело. Absolutely. Если физическая возможность есть, ею воспользуются.И пусть пользуются! Это как-то негативно повлияет на работу сервера FirebirdSQL в целом - приведёт к его нештатной работе или падению? Или это как-то нарушит бизнес логику процесса? hvlad2. С какого перепугу ты решил, что последняя по времени ввода запись является правильной ?Это будет решать оператор или пользователь, который захочет активировать бонус из того набора бонусов пользователя, что хранится в отдельной справочной таблице, а не в таблице " active _bonus". hvladС чего ты взял, что для повторной активации ранее введённого и ныне неактивного бонуса, его нужно ввести заново (и удалить старую запись, убив часть истории, которую ты тут так сильно хочешь) ?С чего ты взял, что для повторной активации ранее деактивированного бонуса нужно что-то удалять в таблице "active_bonus"? Ограничение ПК вполне позволит добавить тот же "bonus_id" тому же "user_id", которые уже существуют в таблице "active_bonus", но с другим штампом времени. hvlad3. См п1 и п2 Я уже писал, что у тебя нет реального опыта работы в реальных условиях ?На заборах тоже часто пишут совершенно необоснованные утверждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 14:26 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
pastorИ еще вчера - текущее сальдо этих самых бонусов.Причём, отчётом на произвольный временной интервал. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 14:29 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
rdb_devhvlad1. Не твоё дело. Absolutely. Если физическая возможность есть, ею воспользуются.И пусть пользуются! Это как-то негативно повлияет на работу сервера FirebirdSQL в целом - приведёт к его нештатной работе или падению? Или это как-то нарушит бизнес логику процесса?Намёки на падения сервера засунь себе в ...карму. Насчёт бизнес логики - твоё предложение её вообще не позволяет соблюсти. Ибо "кто последний ввёл - того и тапки" - вот и вся твоя "бизнес логика". rdb_devhvladС чего ты взял, что для повторной активации ранее введённого и ныне неактивного бонуса, его нужно ввести заново (и удалить старую запись, убив часть истории, которую ты тут так сильно хочешь) ?С чего ты взял, что для повторной активации ранее деактивированного бонуса нужно что-то удалять в таблице "active_bonus"? На первую часть вопроса ответа нет ? Про удаление записи я поторопился, согласен. rdb_devhvladЯ уже писал, что у тебя нет реального опыта работы в реальных условиях ?На заборах тоже часто пишут совершенно необоснованные утверждения.Ну так тут не забор (вроде) - хватит уже. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 14:36 |
|
Как обеспечить частичную уникальность ?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСисдба МастеркеевичУникальность нужна только для активного бонуса. Повторяю медленно: в чём проблема сделать этот бонус полем в таблице пользователей? Можно туда просто ссылку пихать на бонус. Какой запихан - тот и активен. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 14:36 |
|
|
start [/forum/topic.php?fid=40&msg=39822820&tid=1560689]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
147ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 257ms |
0 / 0 |