|
|
|
Правильная ли структура БД?
|
|||
|---|---|---|---|
|
#18+
Правильно ли я все делаю? Итак, есть Поставщик товара, Линия товаров, Описание товара и собственно товар. Таблица Поставщик товара: - id - id Линии товара - имя поставщика - описание Таблица Линия товаров: - id - название - описание Таблица Описание товара: - id - id Линии товара - название товара - описание товара - вес - габариты - есть ли на складе Таблица Товар: - id - id Поставщика товара - id Описание товара - цена - … Вроде бы все ок, но смущает один момент. Теоретически Товар может ссылаться на Описание товара, которое не из той Линии товаров, к которой относится Поставщик товаров. Понятно, что это можно контролировать при добавлении товара. Итак, вопрос – правильно ли я сделал структуру БД? Возможно, есть какие-то варианты, в которых этой проблемы не будет. Спасибо заранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2011, 16:49 |
|
||
|
Правильная ли структура БД?
|
|||
|---|---|---|---|
|
#18+
PeterXaВроде бы все ок, но смущает один момент. Теоретически Товар может ссылаться на Описание товара, которое не из той Линии товаров, к которой относится Поставщик товаров. Пора заносить в FAQ. Этот момент решается прописыванием составных внешних ключей. В Вашем случае - в описание товара вносится поле "id поставщика" и прописывается ключ оттуда на поставщика по паре полей "ид поставщика, ид линии". Это если не считать того странного момента, что у Вас линия включается в себя нескольких поставщиков. Обычно вроде наоборот - некоторые товары поставщика объединяются в линию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2011, 17:41 |
|
||
|
Правильная ли структура БД?
|
|||
|---|---|---|---|
|
#18+
softmaster, спасибо! Разобрался - топик можно закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2011, 18:24 |
|
||
|
Правильная ли структура БД?
|
|||
|---|---|---|---|
|
#18+
On 12/28/2011 05:49 PM, PeterXa wrote: > Таблица Поставщик товара: > - id > - id Линии товара > - имя поставщика > - описание Тут скорее всего ошибка, линии товара тут не должно быть. Один поставщик почти наверняка может поставлять товары нескольких линий товара. Правда, конечно, что такое "линия товара" я понимаю смутно, видимо, это какое-то измерение классификации товара. Тогда линия должна быть атрибутом товара. (как и сделано ниже). > > Таблица Линия товаров: > - id > - название > - описание > > Таблица Описание товара: > - id > - id Линии товара > - название товара > - описание товара > - вес > - габариты > - есть ли на складе Это просто таблица товара. Поле "есть ли на складе" лучше выкинуть, и заменить его таблицей состава склада. Там будет "сколько", и по этому "сколько" можно будет всегда сказать, есть товар на ДАННОМ складе или нет. Складов наверняка может быть не один. > Таблица Товар: > - id > - id Поставщика товара > - id Описание товара > - цена > - … > ЭТо -- не товар, это -- прайс-лист поставщика. Оно конечно, можно называеть как угодно, хоть горшком, только в печь не ставить, но всё же зачем самому себя и коллег обманывать ? Первый ID избыточен. > Вроде бы все ок, но смущает один момент. Теоретически Товар может ссылаться на > Описание товара, которое не из той Линии товаров, к которой относится Поставщик > товаров. Понятно, что это можно контролировать при добавлении товара. Я думаю, то, что тебя смущает, не важно, гораздо важнее то, что я тебе написал. Т.е. видимо ты осознавал где-то глубоко унутри, что что-то не так. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2011, 01:02 |
|
||
|
Правильная ли структура БД?
|
|||
|---|---|---|---|
|
#18+
On 12/28/2011 06:41 PM, softwarer wrote: > Этот момент решается прописыванием составных внешних ключей. В Вашем случае - в > описание товара вносится поле "id поставщика" и прописывается ключ оттуда на > поставщика по паре полей "ид поставщика, ид линии". Хочеш сказать, что товар может поставляться только одним поставщиком ? Как-то сомнительно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2011, 01:04 |
|
||
|
Правильная ли структура БД?
|
|||
|---|---|---|---|
|
#18+
MasterZivХочеш сказать, что товар может поставляться только одним поставщиком Смотря что понимать под поставщиком - вендора или дистрибьютора. Если второе, должна быть "многие ко многим", которой не наблюдается. Поэтому предполагаю первое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2011, 01:08 |
|
||
|
Правильная ли структура БД?
|
|||
|---|---|---|---|
|
#18+
On 12/29/2011 02:08 AM, softwarer wrote: > Смотря что понимать под поставщиком - вендора или дистрибьютора. Если второе, > должна быть "многие ко многим", которой не наблюдается. Поэтому предполагаю первое. А что, вендоров много не может быть ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2011, 11:11 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37598643&tid=1541876]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 501ms |

| 0 / 0 |
