SQL SERVER, exclusive lock on table

Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: SQL SERVER, exclusive lock on table

Post by Andrey Strelnikov »

KVA wrote: 30 Dec 2021 13:25 А чем разница когда AccountID уже попал в базу? Ну допустим мы может рассмотреть оба случая.
Оба случая я не встречал ни разу. А вот случай когда одна известная и толстая контора выдает составной ID(autoincrement + date), при этом сущность имеет еще и исторический autoincrement, знаю. Эти *** могут после ухода с рынка модели присвоить выданный ранее autoincrement новой модели - даже другой марки :o Этот случай вообще ломает миропорядок в системах клиентов. Видите ли нет у них лишних integer ID .
User avatar
KVA
Уже с Приветом
Posts: 5347
Joined: 03 Feb 1999 10:01
Location: NJ, USA

Re: SQL SERVER, exclusive lock on table

Post by KVA »

А вы что берете external ID и используете его как primary key в вашей системе?

External system table:
AccountID
AccountName
AccountCode

Ваша система table:
AccountID
AccountName
AccountCode

так что ли?

Или все таки так как то?

Ваша система table:
MyPrimaryKeyID
ExternalAccountID
ExternalAccountName
ExternalAccountCode

Тогда какая нафиг разница как ExternalAccountID был сгенерен?
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: SQL SERVER, exclusive lock on table

Post by Andrey Strelnikov »

KVA wrote: 30 Dec 2021 15:13 А вы что берете external ID и используете его как primary key в вашей системе?
У нас все ОК. А вот ИХ external ID это имя сущности в предметной области. Так уже исторически сложилось. И расползлось по просторам. И на разборках приходится вытаскивать кучу старых бекапов входящих данных для поиска когда и что поменялось на входе. Хотя конечно толстой конторе эти разборки как укусы комара в броню.
User avatar
KVA
Уже с Приветом
Posts: 5347
Joined: 03 Feb 1999 10:01
Location: NJ, USA

Re: SQL SERVER, exclusive lock on table

Post by KVA »

:pain1: Ну ОК и как "имя сущности в предметной области" относится к "плохости" autoincrement ID?
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: SQL SERVER, exclusive lock on table

Post by Andrey Strelnikov »

KVA wrote: 30 Dec 2021 23:15 :pain1: Ну ОК и как "имя сущности в предметной области" относится к "плохости" autoincrement ID?
Бизнес народ смотрит иногда и в системе вендора. По autoincrement ID. А клиентам часто недогружают к тому моменту ту же версию данных. Начинаются мелкие разборки - мелкие так как уже не в первый раз.
Хуже когда железка уже продана на месте. А данных этой физической уже версии нету. Приходится что-то "дарить" клиенту чтобы замять скандал.
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: SQL SERVER, exclusive lock on table

Post by Andrey Strelnikov »

KVA wrote: 30 Dec 2021 23:15 :pain1: Ну ОК и как "имя сущности в предметной области" относится к "плохости" autoincrement ID?
а исчо есть такая телефонная система 3CX. Исторический зоопарк в API. Часть API тоже выдает autoincrement номеров звонков. Причем перестарт сервера телефонии начинает отсчет ID звонков заново... И иногда может упасть несколько раз в день. Уже надо что-то думать кроме autoincrement + date в big interger
User avatar
VovaK98
Уже с Приветом
Posts: 1830
Joined: 04 Mar 2002 10:01
Location: Tampa

Re: SQL SERVER, exclusive lock on table

Post by VovaK98 »

Helmsman wrote: 29 Dec 2021 22:58 Где как, очевидно. У нас в одних таблицах sequence, в других max(id) + 1 (обычно secondary id). Разве что oracle вместо sql server, но тут однохренственно.
Во всех non-dictionary таблицах я сразу при дизайне закладываю 3 первых поля - это id = bigint autoincrement, guid = newid() (для репликации и прочих ETL) и created=getutcdate(). И никаких clustered indexes, только обычные.
В таблицах, которые содержат всякие dictionary data, created опционально, но лучше иметь clustered index, он же primary index на id.
Это кроет 99.9% всех приложений и ситуаций, которые я встречал за последние лет так 15.

Там дальше обычно добавляю userguid, чтобы знать, какая скотина что сломала, modified, чтобы знать когда она это сломала, и т п.
Несите чушь бережно, стараясь не расплескать. Чушь хороша, когда она полная.
User avatar
KVA
Уже с Приветом
Posts: 5347
Joined: 03 Feb 1999 10:01
Location: NJ, USA

Re: SQL SERVER, exclusive lock on table

Post by KVA »

@Andrey Strelnikov - Я так и не понял как кривые руки вендора соотносятся с плохостью autoincrement. Представьте что те кривые руки свои ID начнут генерировать. Да еще забудут их unique сделать. :)

@VovaK98 +1 к подходу с дизайном.
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: SQL SERVER, exclusive lock on table

Post by Andrey Strelnikov »

KVA wrote: 31 Dec 2021 20:08 @Andrey Strelnikov - Я так и не понял как кривые руки вендора соотносятся с плохостью autoincrement. Представьте что те кривые руки свои ID начнут генерировать. Да еще забудут их unique сделать. :)
А guid не колготки. Кривые не сделаешь :)

А у нас Новый год на подходе :)

С праздником вас коллеги!

Return to “Вопросы и новости IT”