Když se podíváte na boty, máte jednu entitu:boty. Má dva přímé atributy:velikost a barvu. Doména každého z těchto atributů musí být přesně definována, což označuje jejich vyhledávací tabulky. Existují dva nepřímé atributy, cena a množství, ale jedná se spíše o atributy každé kombinace velikosti/barvy než samotné boty.
To naznačuje jednu tabulku entit:Boty; dvě vyhledávací tabulky:Velikosti a barvy; a jednu třícestnou průsečíkovou tabulku:ShoeStyles:
create table ShoeStyles(
ShoeID int not null,
SizeID smallint not null,
ColorID char( 1 ) not null,
Price currency,
Qty int not null default 0,
constraint FK_ShoeStyles_Shoe foreign key references Shoes( ID ),
constraint FK_ShoeStyles_Size foreign key references Sizes( ID ),
constraint FK_ShoeStyles_Color foreign key references Colors( ID ),
constraint PK_ShoeStyles primary key( ShoeID, SizeID, ColorID )
);
Tak například kombinace („Penny Loafer“, „10 1/2“, „Tan“) bude mít konkrétní cenu a množství po ruce. Velikost 11 Tan bude mít svou vlastní cenu a množství, stejně jako 10 1/2 Burgandy.
Doporučil bych pohled, který spojí tabulky a prezentuje výsledky v použitelnější formě, jak je uvedeno výše, spíše než řekněme (15, 4, 3, 45,00, 175). Spouštěče v zobrazení by mohly umožnit veškerý přístup aplikace prostřednictvím zobrazení, takže aplikace zůstane agnostika vůči fyzickému rozvržení dat. Takové pohledy jsou extrémně výkonným nástrojem, který významně přispívá k robustnosti a udržovatelnosti podkladových dat a samotné aplikace, ale které jsou žalostně málo využívány.