У меня есть одна таблица ("#detail" в примере ниже), которая будет иметь дочернее отношение к одной из трех таблиц (всегда одна таблица и никакие другие). Например, строки #detail 'aaaa' и 'bbbb' должны иметь значение столбца, связанное с #metainfo1, row1 и row 'cccc' должны быть связаны с #metainfo2.row1, а 'dddd' должно быть связано с #metainfo3, ряд1.
Я бы предпочел не создавать новый столбец в #detail для каждой таблицы #metainfo, потому что мне придется добавлять новые столбцы #detail по мере добавления новых таблиц #metainfo во время существования базы данных, и каждая строка в #detail будет иметь не менее 2 нулевых значений (и больше нулевых столбцов по мере роста #metainfo).
Я думал о создании таблицы соединений/соединений между таблицами #detail и #metainfo, но это просто перемещает лишние нулевые столбцы и работу по расширению в другую таблицу (и добавляет дополнительный ввод-вывод).
Может ли кто-нибудь порекомендовать способ заставить эти отношения с несколькими родителями работать?
Спасибо.
create table #detail (detailid int identity(1,1) primary key , detailinfo varchar(4) )
create table #metainfo1 (meta1id int primary key )
create table #metainfo2 (meta2id int primary key)
create table #metainfo3 (meta3id int primary key)
insert into #detail
select 'aaaa' union select 'bbbb' union select 'cccc' union select 'dddd'
insert into #metainfo1
select 1
insert into #metainfo2
select 1
insert into #metainfo3
select 1