Eu tenho uma situação em que preciso manter um grupo de linhas de detalhes juntas, mas onde o "pai" não tem atributos adicionais e os "filhos" não têm propósito próprio. Comecei com a abordagem típica (para mim)
GroupOfSomething
Id
SomethingDetail
Id
GroupOfSomethingId (FK)
LookupToAnotherTable (FK)
SomethingElse
Acima, Id é PK de digamos INT. Querendo saber se algo como o abaixo com apenas uma tabela em vez do relacionamento pai/filho é mais apropriado (GroupId pode ser um UNIQUEIDENTIFIER)
GroupOfSomethings
GroupId
Id
LookupToAnotherTable (FK)
SomethingElse
Em um esforço para esclarecer, isso é para algo como um sistema de contabilidade. São Somethings
FKs para contas. Haverá uma coleção dessas contas que os usuários vincularão a um ou mais fornecedores. No nível em que o fornecedor e a coleção de contas estão vinculados, há metadados adicionais. Então, esse relacionamento será o pai de mais uma coleção 1:muitos e de entidades adicionais 1:1 e 1:muitos relacionadas. Então fica algo como abaixo (com a estrutura PK/FK original, sem definir o que são todas as outras tabelas FK)
GroupOfAccounts
Id (PK)
GroupOfAccountDetail
Id (PK)
GroupOfAccountId (FK)
AccountId (FK)
VendorGroupOfAccountInfo
Id (PK)
VendorId (FK)
GroupOfAccountId (FK)
VendorGroupOfAccountInfoAdditionalDetail
Id (PK)
VendorGroupOfAccountInfoId (FK)
FeeStructureId (FK)
StateId (FK)
VendorGroupOfAccountRates
Id (PK)
GroupOfAccountDetail (FK)
RatePercentage
EffectiveDate
...