2016-07-21 1 views
0

В нашей схеме мы имеем сущность уровня и объект подкачки. Хранилища хранятся в пределах уровней портов. Порты являются атрибутом уровней. На каждый уровень приходится различное количество портов. Мы можем определить количество портов на основе SKU для уровня. Как мы проектируем схему для учета разного количества портов на уровень, чтобы проверить наличие порта для нового модуля или нет и определить порты для самых больших уровней по сравнению с самыми маленькими.способ проектирования схемы SQL, где сущности имеют фиксированное число отношений, но число отношений зависит от атрибутов

Пример:

уровень 1000 имеет 4 порта и три заполнены.
уровень 4000 имеет 12 портов и нет.

level table 
----------- 
level id 
port_id1 
port_id2 
port_id3 
port_id(n) 


pod table 
--------- 
pod_id 
other attributes 

Проектирование его в форме выше, приведут к обнуляемым колоннам, и мы не уверены, что это лучшая практика с учетом нашей установки.

Реляционная схема: Relational Schema

+1

Что вы хотите сказать? – Nicarus

+0

Когда атрибут объекта изменяется по размеру (в данном случае имеет от 4 до 12 портов), как мы учитываем все порты каждого уровня в таблице уровней, а затем проверяем, открыт ли порт до того, быть связанным с этим портом на этом уровне? Извините, я могу попробовать уточнить, если потребуется. –

+0

У вас, вероятно, есть очень хорошая идея в вашей голове, как выглядят ваши схемы и данные; однако в вашем вопросе это не совсем понятно. Можете ли вы обновить свой пост с помощью некоторых данных и любой информации о том, как эти таблицы относятся (если вообще)? – Nicarus

ответ

0

Если я правильно понимаю вашу схему и намерение правильно, это то, как я бы подойти к нему. (Извините, у меня нет довольно ERD-программного обеспечения на работе.)

Просто создайте нормализованную таблицу для хранения отношений уровня к порту, чтобы она могла обрабатывать нуль-ко-многим. Вероятно, вы захотите добавить ограничения для обеспечения уникальности и т. Д .; но это должно быть общая идея:

enter image description here

Основываясь на своем последнем осветления комментарий, вы могли бы избежать использования Port таблицы и заменить Port_Id поля на Levels_Port с INT поля, которое хранит свою ценность 5-12 ,

+0

Это прекрасно! Таким образом, вы определенно предложили бы либо сделать порты сущностью, либо сделать ее атрибутом отношений между стручками и уровнями? –

+0

Если порты являются просто цифрами, не создавайте для них таблицу, но обязательно добавьте контрольное ограничение в поле номера порта, чтобы вы могли убедиться, что используются только действительные номера портов. – Nicarus

+0

Звучит достаточно просто! Еще раз спасибо за направление! –

Смежные вопросы