sql >> Database teknologi >  >> RDS >> Mysql

databasedesign, lav en tabel til at pege på flere og en form for rekursive pointers

Dette er et potentielt stort databaseskema, så jeg vil kun fokusere på muskel- og skeletsystemet. Før jeg kommer ind på det, bør jeg dog nævne vigtigheden af ​​databasenormalisering. Det er vigtigt! Og af mange grunde. Hovedsageligt, ved at designe en god, normaliseret database sparer du nu dig selv for problemer hen ad vejen, mens du sikrer integriteten og pålideligheden af ​​dine data. Hav altid i baghovedet "Hvordan vil denne database vokse", "Hvad nu hvis jeg har brug for at tilføje flere systemer eller visninger eller distributionsmønstre" osv. Gør dig selv, en din arbejdsgiver, en tjeneste og læs videre i. A kort oversigt kan læses her:http://databases.about.com/ od/specificproducts/a/normalization.htm

Til databasedesignet:

Du ønsker at holde redundante kolonner og kolonner, der er undersæt af andre kolonner, ude af en tabel og ind i sin egen. For eksempel, se på din lymfeknude tabel. Hvad hvis du om et år indser, at du skal tilføje endnu en lymfeknude? Eller fjerne en? Eller hvad hvis du kun ser på én node fra en klient? I stedet for at gøre det på din måde, skal du binde bordet til en større genstand (jeg er ikke læge, så jeg er ikke sikker på, hvad anser er) som patient eller lymfesystemer. Eller begge. Eksempel:

En patient har mange systemer (et til mange forhold mellem patientbord og systembord) Et lymfesystem har mange organer (et til mange forhold mellem lymfesystem og organer) Et system eller organ har mange test (en en til mange relationer mellem systemer og test).

Eksempel:

Denne tabel bør kun have data vedrørende en individuel patient

Denne tabel bør kun have kolonner, der er specifikke for alle systemer. Systemer kan være lymfesystemer, åndedrætssystemer, ekskretionssystemer osv.

TablePatient_TableSystems

Du kan ikke have mange til mange forhold. Denne tabel løser det. Hvis du ikke havde dette, skulle du føre redundante optegnelser i hver tabel for hver patient/system

Løser de mange til mange for systemer og organer

Nu til test. Er test specifikke for organer eller systemer? Eller begge? Dette eksempel vil sige begge dele

Tabeltest

Der er meget her, så jeg synes, det er et godt sted at stoppe. Læs datanormaliseringen igennem, og når du har spørgsmål, kan du skrive tilbage her (eller sende mig en besked).



  1. SQL 2008 VS 2012 Fejl:Forkert syntaks nær nøgleordet 'COMPUTE'

  2. Hvordan MAKE_SET()-funktionen virker i MySQL

  3. MySql fuldtekstsøgning

  4. MySQL finde dubletter baseret på en anden kolonneværdi