Вопрос описывает только половину соотношения между ремонтом и запасными частями. Вы заявили, что ремонт может состоять из нулевой руды с более запасными частями.
Но (1) можно заменить одну и ту же заменяемую часть нулевым или более ремонтным ремонтом или (2) заменить запасную часть, потребляемую ремонтом так, чтобы она могла произойти только при ноль или один раз при ремонте?
Необходимо сделать это ясно, потому что (1) и (2) приводят к различным схемам баз данных:
(1) представляет собой многие - ко - многим отношениям и приводит к отдельной таблице соединительной части и ремонтные работы:
create table part (
partId int primary key
);
create table repair (
repairId int primary key
);
create table part_repair (
partId int references part (partId),
repairId int references repair (repairId)
primary key (partId, repairId)
);
(2) часть может быть использована в нулевом или одного ремонта; магазин ремонтно-идентификатор в части:
create table repair (
repairId int primary key
);
create table part (
partId int primary key,
repairId int references repair(repairId)
);
Обратите внимание, что repairId
частично может взять на себя NULL
значений для тех частей, которые не назначены для ремонта.
Надеюсь, что это поможет.
вместо этого используйте уникальный ключ. thats позволяет иметь ** NULL ** –
Так вот так; Запасные части (уникальный идентификатор, дата, описание nvarchar (255)) ??? –
Вам может потребоваться много и много отношений между ремонтом и частями. –