|
|
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
Здраствуйте пишу дилом, ИС фирмы, оказывающей следующиеуслуги: продажу, установку, настройку, ремонт и обслуживание мини-атс, телефонов, линий связи, ЛВС, видео наблюдение. Так вот при проектирование возникли следуюшие вопросы: 1.Есть достаточно большое кол-во оборудования(телефоны: системные, дект, стационарные, мини-атс, платы расширения, кросы, и т.п.), у них есть, ясное дело, одинаковые для всех атрибуты (id,фирма произ, название, цена, страна произв, вес), но есть разные. Так вот столкнулся с такой проблемой, как правильно сделать для каждой еденицы оборудования(от мини-атс до матрицы, на плате :)) сделать свою таблицу? Использовать ли иерархия? насколько усложнятся тогда запросы и написание программы? Или сделать одну таблицу оборудование и все туда( хотя мне кажется что это неверно). 2. Имеются таблицы работник, контрагент. Для обоих объектов надо хранить адреса, имеет ли смысл делать 3 таблицы: Адрес прописка, Адрес проживания - работник Адрес - контагент. или все в одну, в основном буду использовать адреса контрагентов. 3. И еще стоит/нестоит, точнее правильно или неправильно использовать пустые поля(NULL). Спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2009, 23:25 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
только_на_минутку 1.Есть достаточно большое кол-во оборудования(телефоны: системные, дект, стационарные, мини-атс, платы расширения, кросы, и т.п.), у них есть, ясное дело, одинаковые для всех атрибуты (id,фирма произ, название, цена, страна произв, вес), но есть разные. Так вот столкнулся с такой проблемой, как правильно сделать для каждой еденицы оборудования(от мини-атс до матрицы, на плате :)) сделать свою таблицу? Использовать ли иерархия? Я бы сделал так: создал бы основное отношение, в котором хранил бы общие для всех экземпляров атрибуты. А остальные (необщие) атрибуты хранил бы в связных отношениях (для каждого типа оборудования свое отношение) только_на_минутку насколько усложнятся тогда запросы и написание программы? Или сделать одну таблицу оборудование и все туда( хотя мне кажется что это неверно). Все зависит от того, что вы хотите получить в результате запроса. Не думаю, что запрос вида "выбрать все атрибуты всех записей, включая дополнительные атрибуты" в данном случае имеет смысл только_на_минутку 2. Имеются таблицы работник, контрагент. Для обоих объектов надо хранить адреса, имеет ли смысл делать 3 таблицы: Адрес прописка, Адрес проживания - работник Адрес - контагент. или все в одну, в основном буду использовать адреса контрагентов. С точки зрения теории нормализации для разных семантических сущностей необходимо делать разные отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 02:48 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
VxS_ Я бы сделал так: создал бы основное отношение, в котором хранил бы общие для всех экземпляров атрибуты. А остальные (необщие) атрибуты хранил бы в связных отношениях (для каждого типа оборудования свое отношение) а какой связью будет соеденена основная таб с доп. 1:M? и в качестве связующих атр. будет выступать id(номер товара), но в доп. таб он будет FK? Просто это тип связи должен свидеьельствовать, что основному набору атр, из основной таб соответсвует нескольким оборудованиям, но такое врядли будет.И получается что эта связь похожа на иерархию только без дексреминатора и используется будет как 1 к 1.??? или сввязь 1 к 1? Просто наш преподаватель по ТОвБД(теория оптимизации в БД) говорил что связь 1 к 1 - неправельная. И если она есть то атр из осн таб при оптимизации перейдут в доп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 14:44 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
Схема представлена на рисунке. ID Товара в основной таблице - автоинкременируемый первичный ключ. Ассоциативное отношение необходимо, чтобы каждой записи основного отношения соответствовала только одна запись из дополнительных. Все связи на схеме 1:1 Действия ссылочной целостности для всех связей: ON DELETE CASCADE, ON UPDATE CASCADE IDC Товара во вторичных отношениях - автоинкременируемый первичный ключ, уникальный в пределах всех вторичных отношений. Если используемая вами СУБД не может обеспечить уникальность такого рода, то лучше всего будет: только_на_минутку 1.Есть достаточно большое кол-во оборудования(телефоны: системные, дект, стационарные, мини-атс, платы расширения, кросы, и т.п.), у них есть, ясное дело, одинаковые для всех атрибуты (id,фирма произ, название, цена, страна произв, вес), но есть разные. Так вот столкнулся с такой проблемой, как правильно сделать для каждой еденицы оборудования(от мини-атс до матрицы, на плате :)) сделать свою таблицу ? Использовать ли иерархия? насколько усложнятся тогда запросы и написание программы? Или сделать одну таблицу оборудование и все туда( хотя мне кажется что это неверно). P.S.: также вариант с отдельными отношениями будет предпочтительней, если число общих атрибутов и число записей не велико или размеры базы данных некритичны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 18:35 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
Извените, схему забыл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 18:35 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
VxS_ P.S.: также вариант с отдельными отношениями будет предпочтительней, если число общих атрибутов и число записей не велико или размеры базы данных некритичны Это я глупость сказал. Не обращайте внимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 19:24 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
авторIDC Товара во вторичных отношениях - автоинкременируемый первичный ключ, уникальный в пределах всех вторичных отношений. Если используемая вами СУБД не может обеспечить уникальность такого рода MSSQL 2005 или 2008 поддерживает такую возможность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 11:28 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
Да. Тип данные timestamp обеспечивает уникальное автоинкременируемое значение поля в пределах базы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 17:57 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
VxS_Да. Тип данные timestamp обеспечивает уникальное автоинкременируемое значение поля в пределах базы данных. Хм... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 18:49 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
авторДействия ссылочной целостности для всех связей: ON DELETE CASCADE, ON UPDATE CASCADE то есть, если из любого справочника что-либо удалим, то охерачатся и заказы, и т.д. Правильно? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 18:53 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
explaХм... Да, коллега - они там намудрили с терминологией - но что правда то правда. Timestamp - 8 байтный уникальный автоинкремент внутри SQL Server базы . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 18:56 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
VxS_Да. Тип данные timestamp обеспечивает уникальное автоинкременируемое значение поля в пределах базы данных. Нужно выставить тип idc Timestamp в ассециативной таблице и во всех таблицах вторичное отношение, или только в таблице ассоциативное отношение? Большое спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 20:01 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
VxS_ пишет: > Да. Тип данные timestamp обеспечивает уникальное автоинкременируемое > значение поля в пределах базы данных. Уверены на 100% ? Что-то меня сомнения берут... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 22:54 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
MasterZiv Что-то меня сомнения берут... не сомневайтесь Коллега. Так и есть. BOL Is a data type that exposes automatically generated, unique binary numbers within a database. timestamp is generally used as a mechanism for version-stamping table rows. The storage size is 8 bytes. The timestamp data type is just an incrementing number and does not preserve a date or a time. To record a date or time, use a datetime data type. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 22:57 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
kdv, Нет не правильно. Если мы удалим запись об основных атрибутах, охерачатся и дополнительные, т.к. в них в таком случае нет смысла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 01:02 |
|
||
|
вопросы по Проектированию БД
|
|||
|---|---|---|---|
|
#18+
Во всех дополнительных. В ассоциативном отношении все записываем вручную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 01:06 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35826068&tid=1543421]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
203ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 566ms |

| 0 / 0 |
