sql >> Databasteknik >  >> RDS >> Mysql

Skulle detta ER-diagram istället använda ett ternärt samband

Du verkar ha missuppfattat specen. En vara förs till ett UPS-butikscenter och skickas sedan till en destination. Men låt oss överväga det ternära förhållandet att en skickad vara tar en transporthändelse för att nå en specifik destination .

Det är en av många tänkbara relationer på dessa tre enheter.

Ja det gör det. Men det ternära förhållandet kan uttryckas i termer av dessa binära diagramsförhållanden. (Och inte vice versa.)

Varje tabell – basvariabel eller frågeresultat – innehåller rader som deltar i en viss relation. Vi kan karakterisera förhållandet med ett predikat --en satsmall parametrerad av attribut.

En tabell innehåller de rader vars värden för attribut gör ett sant uttalande från dess predikat. Predikatet för en basvariabel ges av DBA.

-- shipped item ItemNumber is received by retail center UniqueId
SELECT * FROM ReceivedFrom
-- shipped item ItemNumber takes transportation event ScheduleNumber
SELECT * FROM ShippedVia

Predikatet för ett frågeuttryck är byggt från dess operatorer och argument. Exempelvis är predikatet för den NATURLIGA JOIN för två tabeller OCH för tabellernas predikat.

-- shipped item ItemNumber is received by retail center UniqueId
       and takes transportation event ScheduleNumber
SELECT * FROM ReceivedFrom NATURAL JOIN ShippedVia

Naturligtvis kanske din speciella uppfattning om det ternära förhållandet inte är denna exakta fråga/tabell. Men en praktisk UPS-databas skulle ha tabeller för de grundläggande relationerna i termer av vilka alla relevanta relationer kan uttryckas.

(Normalisering delar upp predikat av formen "... OCH ..." i separata predikat för "..." när det är möjligt och användbart; den ursprungliga tabellen ges tillbaka av komponenternas JOIN.)




  1. PostgreSQL-array av element som var och en är en främmande nyckel

  2. NodeJS/mySQL - ER_ACCESS_DENIED_ERROR Åtkomst nekad för användaren 'root'@'localhost' (med lösenord:YES)

  3. MySQL FÖRKLARA:Använda index vs. Använda indexvillkor

  4. MYSQLI::prepare() , fel vid användning av platshållare :something