Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удобно ли использовать?


koha! ©   (2009-11-26 06:28:00) 

Часто в реляционных таблицах используют ключевое поле ввиде счетчика который сам заполлняется например, создали таблицу справосник:

| key | наназвание рибора |

поле key сделали счетчиком

народ скажите:

- всегда ли это уместно?
- использует кто-нибудь другие способы?


clickmaker   (2009-11-30 15:53:00) [1]

> Клиент СУБД в оффлайн ?

лехко. Привет от TClientDataset


> И при этом больше одной мастер записи ?

мастером выступает юзер, он же клиент. На него все накручивается, как спагетти на вилку.
То есть вместо того, чтобы оперировать одним суррогатным идентити, мы имеем дело с ключами типа UserId, OrderId, чего-то там еще Id.
Где OrderId уникален в рамках UserId, а что-то там еще Id - в рамках OrderId


ANB   (2009-11-30 09:34:00) [2]


>
> если таких клиентов до хрена, то это не спасет
> нужна же сквозная уникальность

Клиент СУБД в оффлайн ?
И при этом больше одной мастер записи ?
Не знаю, зачем может понадобиться такой изврат, разве что при смещении объектного и реляционного методов (что само по себе есть извращение).
Но и при этом есть минимум 3 решения :
ГУИД
Сгенерить ИД про запас (не пройдет, если СУБД не имеет генераторов, как у парадокса и мс скл)
Использовать мнемонику, например : положительные ИД - реальные из БД, отрицательные - псевдо ИД на клиенте, затем подлежать замене на реальные при сохранении данных в БД.


YurikGL   (2009-11-26 20:17:00) [3]

Всегда генерю суррогатные ключи и связываю только по ним.


clickmaker   (2009-11-26 14:38:00) [4]

> Ну, можно при синхронизации некоторое количество сгенерить
> про запас

если таких клиентов до хрена, то это не спасет
нужна же сквозная уникальность


Рамиль   (2009-11-26 14:28:00) [5]


> например, при работе клиента временно в оффлайне, когда
> нет возможности интерактивно сгенерить идентити в базе.

Ну, можно при синхронизации некоторое количество сгенерить про запас или GUID использовать.


Игорь Шевченко   (2009-11-26 13:17:00) [6]

Григорьев Антон ©   (26.11.09 11:52) [8]

Марксизм не догма, а руководство к действию


Григорьев Антон   (2009-11-26 11:52:00) [7]

Вот тут об этом спорили, спорили да так и не пришли к единому мнению: http://www.delphikingdom.com/asp/talktopic.asp?ID=152Но всё равно интересно почитать аргументацию обеих сторон.


sniknik   (2009-11-26 11:36:00) [8]

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

> Тогда используют составные или естественные ключи
или все таки искусственный но гарантированно уникальный, гуид например.

в общем уместность вне контекста задачи не рассматривается, бессмысленно.


clickmaker   (2009-11-26 11:09:00) [9]

> всегда ли это уместно?

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


Anatoly Podgoretsky   (2009-11-26 10:59:00) [10]

Удобство - это не тот критерий в данных случаях.


ANB   (2009-11-26 09:40:00) [11]


> | key | наназвание рибора |

Неправильно.

Надо :
ID - суррогатный ключ
Shifr
Name
. . .
И еще куча полей.

:)

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


Сергей М.   (2009-11-26 09:34:00) [12]


> всегда ли это уместно?


Это уместо тогда, когда нет естественного ключа.


> использует кто-нибудь другие способы?


Кто-нибудь обязательно использует.


Sergey13   (2009-11-26 09:06:00) [13]

> [0] koha!   (26.11.09 06:28)
> - всегда ли это уместно?
Практически всегда. Хоть это и не единственный вариант.

> - использует кто-нибудь другие способы?
Конечно.

ЗЫ: Странный вопрос какой то.


Inovet   (2009-11-26 08:37:00) [14]

Сурогатный ключ пользователю совсем не надо видеть, а у прибора кроме названия наверняка ещё много всякого есть, может что и сгодится.


Наверх

Титульная страница Поиск, карта сайта Написать письмо