Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Identity vs generated ID  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
ex
- каким встроенным методам?? если Вам нужно реплицировать данные из нескольких источников: гл.офис, филиал1, филиал2 и т.д.?? как Вы будете при помощи автоинкремета это делать?? или GUID буете генерить :) нуну...

newid(). Никаких проблем.
14 июн 05, 16:59    [1619802]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
ex
Member

Откуда:
Сообщений: 271
Glory
или GUID буете генерить :) нуну...
А зачем его самому генерить ?


- ну предположим вы хотите вставить запись в две таблицы.. в одной таблице используется ключ другой.. как вы поступите?? наверно сгенерируете этот ключ, вставите в родительскую табличку, а затем и в дочернюю.. это к примеру..
14 июн 05, 17:01    [1619808]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
ex
Member

Откуда:
Сообщений: 271
GreenSunrise
ex
- каким встроенным методам?? если Вам нужно реплицировать данные из нескольких источников: гл.офис, филиал1, филиал2 и т.д.?? как Вы будете при помощи автоинкремета это делать?? или GUID буете генерить :) нуну...

newid(). Никаких проблем.


- GUID не информативен... я вот в последние разряды вставлю 10 номер сиситмемы.. и в передыдущие два разряда 10 - номер филиала... во и все дела.. полезно при репликации, да и потом для анализа записей...
14 июн 05, 17:03    [1619819]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324


>>> ну предположим вы хотите вставить запись в две таблицы.. в одной таблице
>>> используется ключ другой.. как >>вы поступите?? наверно сгенерируете
>>> этот ключ, вставите в родительскую табличку, а затем и в дочернюю..
>>> >>>это к примеру..

И что? Это вызывает какие то трудности?


Posted via ActualForum NNTP Server 1.2

14 июн 05, 17:03    [1619821]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Glory
Member

Откуда:
Сообщений: 104760
ex
Glory
или GUID буете генерить :) нуну...
А зачем его самому генерить ?


- ну предположим вы хотите вставить запись в две таблицы.. в одной таблице используется ключ другой.. как вы поступите?? наверно сгенерируете этот ключ, вставите в родительскую табличку, а затем и в дочернюю.. это к примеру..

И в чем проблема-то ?
14 июн 05, 17:04    [1619829]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324

>>>- GUID не информативен... я вот в последние разряды вставлю 10 номер
>>>сиситмемы.. и в передыдущие два >>>разряда 10 - номер филиала... во и все
>>>дела.. полезно при репликации, да и потом для анализа записей...

А это у вас уже с нормализацией проблемы...
Да и сурогатные ключи, однако ...


Posted via ActualForum NNTP Server 1.2

14 июн 05, 17:07    [1619838]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324

т.е. здесь у вас транзитивная зависимость.


Posted via ActualForum NNTP Server 1.2

14 июн 05, 17:09    [1619847]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
ex
Member

Откуда:
Сообщений: 271
Роман Дынник


>>> ну предположим вы хотите вставить запись в две таблицы.. в одной таблице
>>> используется ключ другой.. как >>вы поступите?? наверно сгенерируете
>>> этот ключ, вставите в родительскую табличку, а затем и в дочернюю..
>>> >>>это к примеру..

И что? Это вызывает какие то трудности?


Posted via ActualForum NNTP Server 1.2


не понял вопроса.. про трудности.. лично лдя меня трудностей не вызывает.. это написано к положению о том, как формировать уникальный ключ, штобы было максимально удобно для разработчика и в поддержке БД.. это совет.. не хотите не пользуйтесь.. яэ грю о том что проще самому формировать этот уникальный ключ, чем доверять это системе.. управляемость это очень удобно..
14 июн 05, 17:09    [1619848]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Glory
Member

Откуда:
Сообщений: 104760
ex
не понял вопроса.. про трудности.. лично лдя меня трудностей не вызывает.. это написано к положению о том, как формировать уникальный ключ, штобы было максимально удобно для разработчика и в поддержке БД.. это совет.. не хотите не пользуйтесь.. яэ грю о том что проще самому формировать этот уникальный ключ, чем доверять это системе.. управляемость это очень удобно..

Проще это как вы предложили - добавлять строго по одной записи и строго с только с одного коннекта в один момент времени ?
14 июн 05, 17:12    [1619856]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
ex
- ну предположим вы хотите вставить запись в две таблицы.. в одной таблице используется ключ другой.. как вы поступите?? наверно сгенерируете этот ключ, вставите в родительскую табличку, а затем и в дочернюю.. это к примеру..

Ага. Так и сделаю. В чем проблема?

ex
- GUID не информативен... я вот в последние разряды вставлю 10 номер сиситмемы.. и в передыдущие два разряда 10 - номер филиала... во и все дела.. полезно при репликации, да и потом для анализа записей...

И нахрена мне такое?????? Вы про нормализацию никогда ничего не читали? Про атомарность атрибутов и все дела?
14 июн 05, 17:12    [1619857]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
ex
яэ грю о том что проще самому формировать этот уникальный ключ, чем доверять это системе.. управляемость это очень удобно..

Во бредятина-то, простите за прямоту.

Где "проще" и где "более управляемо" в вашем способе, скажите пожалуйста???
14 июн 05, 17:13    [1619865]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
ChA
Member

Откуда: Москва
Сообщений: 11128
И топчуть, и топчуть :) Человек сам все придумал, сделал, даже, предполагаю, работает...
14 июн 05, 17:15    [1619872]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Glory
Member

Откуда:
Сообщений: 104760
2 ChA. И вправду, может быть лучшее - враг хорошего ? :)
14 июн 05, 17:20    [1619893]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Сергей Васкецов
Member

Откуда:
Сообщений: 20362
Glory
Проще это как вы предложили - добавлять строго по одной записи и строго с только с одного коннекта в один момент времени ?

Откуда вы это взяли? Было же написано про временную таблицу, вот через нее все и пропихивается. Для всех таблиц, для которых используется массовая вставка, просто создается временная копия. insert .. select работает как ни в чем не бывало. Такая конструкция используется во многих системах. У нас тоже. Работает поболее 5 лет и, что немаловажно, для любого нормального сервера БД.
14 июн 05, 17:23    [1619904]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Glory
Member

Откуда:
Сообщений: 104760
2Сергей Васкецов
1. Это все укладывается в понятие "проще чем стандартными средствами" ?
Это был, как я понял, немаловажный аргумент

2. Что насчет одновременного массового добавления их разных коннектов ?
14 июн 05, 17:27    [1619921]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Сергей Васкецов
Member

Откуда:
Сообщений: 20362
Glory
2Сергей Васкецов
1. Это все укладывается в понятие "проще чем стандартными средствами" ?
Это был, как я понял, немаловажный аргумент

Часто стандартные средства на MSSQL не являются стандартными на других серверах БД или вовсе отсутствуют. В частности, GUID - вещь не переносимая. Кроме того, экономия 8 байт на каждой записи становится существенна уже для БД в 30-40 гиг. Могут быть причины, не только перечисленные, которые делают невозможным использование GUID-ов.

Glory

2. Что насчет одновременного массового добавления их разных коннектов ?

Я не знаком с реализацией от EX, но принципиальных проблем, делающих невозможной одновременную вставку в таблицу с нескольких коннектов, нет. Просто надо не только для таблицы некий "счетчик" иметь, но и для suid/spid или еще кому как нравится, это уже постановкой задачи определяется.

Апологетам нормализации замечу, что сама по себе академическая нормализация до 5NF никому никогда не нужна. Пользователь всегда хочет быструю работу системы, а не непонятно что. Поэтому если система позволяет в триггере на delete проверить диапазон поля identity и блокировать удаление записи с чужого сайта без введения дополнительных смысловых полей (которые не нужны, если репликация с системы снимается) - это не ошибка нормализации, а красивое решение, которое не смогли испортить тонны причитанных трудов классиков.
14 июн 05, 17:36    [1619959]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Не, ребятки. Вы выдумывайте что хотите, и пусть это даже работает, и вам хорошо, и кастомерам. На здоровье. А я пойду дальше юзать newid() и жить без проблем с уникальностью, с репликацией, с форейн кеями, с параллельными вставками, с простотой кода и простотой поддержки. У меня вот больше 5 лет newid() пашет и, знаете, тоже никаких проблем %-) А вы пихайте в 10 разрядов какую-то фигню, юзайте временные таблицы, лочьте постоянные - да флаг вам в руки...
14 июн 05, 17:39    [1619974]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Glory
Member

Откуда:
Сообщений: 104760
Часто стандартные средства на MSSQL не являются стандартными на других серверах БД или вовсе отсутствуют.
Это все не было изначально сказано ни у автора топика(он явно указал наличие одного MSSQL) ни у ex-а. Если спроится мультиплотформенная стистема то это не сюда а в форум Проктирование БД

Я не знаком с реализацией от EX, но принципиальных проблем, делающих невозможной одновременную вставку в таблицу с нескольких коннектов, нет. Просто надо не только для таблицы некий "счетчик" иметь, но и для suid/spid или еще кому как нравится, это уже постановкой задачи определяется.
Что-то я не понял, как два коннекта смогут _одновременно_ сгенерировать диапазоны ID для своих данных. Как они смогут проверить что эти диапазоны не пересекаюся ?

Апологетам нормализации замечу, что сама по себе академическая нормализация до 5NF никому никогда не нужна.
Совмещениме атрибутов это нарушение только 5NF ???
14 июн 05, 17:46    [1620006]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Сергей Васкецов
Апологетам нормализации замечу, что сама по себе академическая нормализация до 5NF никому никогда не нужна.

Гххыыы... Поправьте меня, если я ошибаюсь, но по-моему, атомарность атрибутов - это первая нормальная форма.

Про совместимость с другими БД первый раз в этом топике слышу. До сих пор речь шла об MSSQL.
14 июн 05, 17:48    [1620020]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324

(с) "Переносимость - это хорошее свойство чемоданов"
И чем вам собственно переносимость GUID не угодила? конвертнуть его в
varchar(36) особых проблем не составляет.


Posted via ActualForum NNTP Server 1.2

14 июн 05, 17:49    [1620022]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Сергей Васкецов
Member

Откуда:
Сообщений: 20362
Роман Дынник
И чем вам собственно переносимость GUID не угодила? конвертнуть его в
varchar(36) особых проблем не составляет.

Не понял. Вы предлагаете на серверах, где нет GUID, в качестве PK взять varchar(36), чтобы репликация работала?
14 июн 05, 18:06    [1620084]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324

>>>Не понял. Вы предлагаете на серверах, где нет GUID, в качестве PK взять
>>>varchar(36), чтобы репликация >>>работала?
Я сказал что переносимость - это хорошее свойство чемоданов.


Posted via ActualForum NNTP Server 1.2

14 июн 05, 18:12    [1620109]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Сергей Васкецов
Member

Откуда:
Сообщений: 20362
GreenSunrise
Гххыыы... Поправьте меня, если я ошибаюсь, но по-моему, атомарность атрибутов - это первая нормальная форма.

наверное именно поэтому на многих СУБД вводяюся сложные типы данных, списки, множества и прочая шелуха?

Встречный вопрос 1, а что, GUID атомарен? докажите.

Встречный вопрос 2, а что, 1NF или любая другая это такая аксиома, которую нарушать нельзя?
14 июн 05, 18:13    [1620112]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Glory
Member

Откуда:
Сообщений: 104760
наверное именно поэтому на многих СУБД вводяюся сложные типы данных, списки, множества и прочая шелуха?
Например ?

Встречный вопрос 1, а что, GUID атомарен? докажите.
Выделите из него какую-либо смысловую часть

Встречный вопрос 2, а что, 1NF или любая другая это такая аксиома, которую нарушать нельзя?
Нарушать можно все. Реализовывать такие нарушения трудно.
14 июн 05, 18:16    [1620124]     Ответить | Цитировать Сообщить модератору
 Re: Identity vs generated ID  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324

И вы что кроме ID int, ничего больше при репликации не передаете?

>>>Встречный вопрос 1, а что, GUID атомарен? докажите.
по крайней мере не будет транзитивных зависимостей, а с подобными
аргументами мы и int до бита разберем :)
>>>Встречный вопрос 2, а что, 1NF или любая другая это такая аксиома,
>>>которую нарушать нельзя?
Это для кого как. Есть наверное все так и какие то фундаментальные знания и
понятия...


Posted via ActualForum NNTP Server 1.2

14 июн 05, 18:20    [1620134]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить