2010-11-08 5 views
2

Say У меня есть следующие таблицы:Застрял в вопросе проектирования баз данных

  • GearType: сноуборд/шлем/обувь/любой

  • GearModel: описывающее производитель, размер, и GearType

  • Gear: представляет собой физический экземпляр шестерни, принадлежит к GearModel и описывает его штрих-код, количество раз, когда оно было ...

  • Участник: лицо, которое может быть назначено Шестерня для каждого существующего geartype

  • GearAssignation: имеет двойной PK MemberId/GearTypeId поэтому члены могут быть назначены 0..1 передач за geartype, также имеет FK GearId

Мой вопрос: Поскольку механизм не может быть отнесен к более чем 1 член сразу как составить соотношение между Гир и GearAssignation от мощности 1 до 0..1?

В лучшем случае мне удалось это сделать, используя соотношение между Gear.Id и GearAssignation.GearId, с уникальным ключом (помните, что это не может быть PK из-за двойного PK MemberId/GearTypeId) на GearId. Но я бы хотел избавиться от этой Великобритании, потому что мой инструмент разработки программного обеспечения не распознает ее.

Как было предложено, вот схема от SSMS: all irrelevant columns have been deleted

Приведение тяжелых изменений в текущей модели не проблема вообще для меня атм. Предложения?

PS: не знаю, если это поможет, я использую от Microsoft SQL Server 2008

+0

Можете ли вы распечатать экран своей диаграммы SQL из SSMS и загрузить его - может помочь предоставить визуальную помощь – RobS

+0

Предлагаю вам изменить свой заголовок, чтобы задать конкретный вопрос. –

ответ

7

Я хотел бы сделать это с помощью поля в механизме для member_id который он назначен.

+0

+1: полностью отбросьте таблицу GearAssignment. Цель таблицы, подобная этой, состоит только в том, чтобы разрешить отношения многих-многих. – NotMe

+0

@ user348019 - Я бы подумал, что GearTypeId будет атрибутом Gear, а не назначением. То, как ваша модель настраивается прямо сейчас, член ассоциируется с GearType, а не с Gear, и это то, что я читаю вам нужно делать. Jaydee сделал проницательное наблюдение. –

+0

Я собираюсь следовать этому. Ограничение 1 Gear/GearType/Member будет выполняться самим приложением, так как мне сказали, что модель концептуальных данных не подходит для него. Спасибо за вашу помощь. –

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