|  | 
| 
Какая схема лучше, кто как делает | |||
|---|---|---|---|
| #18+ Рассмотрим гипотетический пример доставки товара клиентам по разным адресам, когда у любого клиента  может быть некоторое количество адресов доставки. В этом случае в таблицу - шапку документов отгрузки (ТТН) можно в дополнение к коду клиента ввести поле - внешний ключ со ссылкой на таблицу адресов, в которой будет присутствовать также код клиента и признак IsDefault, указывающий, что данный адрес для данного клиента используется по умолчанию. Немного отличающийся вариант - ввести поле, специфицирующее адрес конкретного клиента, так что внешний ключ - ссылка на таблицу адресов -состоял бы уже из двух полей - поля кода клиента и этого поля. Какой вариант вы предпочтёте, уважаемые спецы? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 13.08.2003, 00:16 |  | ||
| 
Какая схема лучше, кто как делает | |||
|---|---|---|---|
| #18+ т.е. есть таблица адресов: (ID, ClientID, Address, ...), причем ID-ключ. Тоды в шапке надо указывать только AddressID, без ClientID (типа борьба с транзитивностью). Но т.к. таким манером обычно не поступают, а хранят в "шапке" непосредственно код клиента, то сделай в таблице адресов составной ключ (ID, ClientID), а поле ID сделай минимально возможным - 1 байт. Думаю, что 256 пунктов доставки вполне хватит на клиента. Ну и ссылайся из шапки по (ClientID, ClientAddressID). ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 13.08.2003, 08:48 |  | ||
| 
Какая схема лучше, кто как делает | |||
|---|---|---|---|
| #18+ Таблица Клиент (ID_Klient, ...) Таблица АдресаКлиентов (ID_Adress, ID_Klient, blnDefault,...) Таблица Отгрузка (ID_Otgruz, ID_Klient, ID_Adress,...) Вроде так бы сдел я (если конечно не брать во внимание, что по одному адресу м.б. несколько клиентов - но это уже другая задачка:) Хотя ID_Klient в Отгрузке лишний (можно выцепить ID_Klient и по ID_Adress в таблице АдресаКлиентов), но это дополнительная таблица при построеннии запросов. А так как данная связка (для вычленения клиента, которому что-то отгружено) будет использоваться достаточно активно, то я бы пошел на такую денормализацию ради маленькой выгоды) Правда тут вижу еще один подводный камень: возможность доставки товара одному клитенту по одному документу, но по разным адресам, но это уже другая задачка:) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.08.2003, 11:39 |  | ||
| 
Какая схема лучше, кто как делает | |||
|---|---|---|---|
| #18+ 2 Senin Viktor Таблица Клиент (ID_Klient, ...) Таблица АдресаКлиентов (ID_Adress, ID_Klient, blnDefault,...) Таблица Отгрузка (ID_Otgruz, ID_Klient, ID_Adress,...) blnDefault - избыточен, неинформативен в 99%, к тому же заставляет "прочесывать" АдресаКлиентов в поисках Default. Таблица Клиент (ID_Klient, ID_DefaultAddr...) Таблица АдресаКлиентов (ID_Adress, ID_Klient,...) Таблица Отгрузка (ID_Otgruz, ID_Klient, ID_Adress,...) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 16.08.2003, 03:34 |  | ||
|  | 

| start [/forum/topic.php?fid=32&fpage=179&tid=1546875]: | 0ms | 
| get settings: | 8ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 25ms | 
| get topic data: | 11ms | 
| get forum data: | 2ms | 
| get page messages: | 41ms | 
| get tp. blocked users: | 1ms | 
| others: | 216ms | 
| total: | 322ms | 

| 0 / 0 | 
