sql >> Database >  >> RDS >> Mysql

databaseontwerp, maak één tabel om meerdere en een soort recursieve aanwijzers te wijzen

Dit is een potentieel groot databaseschema, dus ik zal me alleen concentreren op het bewegingsapparaat. Voordat ik daar echter op inga, moet ik het belang van databasenormalisatie noemen. Het is belangrijk! En om vele redenen. Door nu een goede, genormaliseerde database te ontwerpen, bespaart u uzelf problemen op de weg terwijl u de integriteit en betrouwbaarheid van uw gegevens waarborgt. Houd altijd in uw achterhoofd "Hoe zal deze database groeien", "Wat als ik meer systemen of weergaven of distributiepatronen moet toevoegen", enz. Doe uzelf, uw werkgever, een plezier en lees verder in. A kort overzicht is hier te lezen:http://databases.about.com/ od/specificproducts/a/normalization.htm

Naar het database-ontwerp:

U wilt overtollige kolommen en kolommen die subsets zijn van andere kolommen uit een tabel en in zijn eigen tabel houden. Kijk bijvoorbeeld naar uw Lymfekliertabel. Wat als u zich over een jaar realiseert dat u nog een lymfeklier moet toevoegen? Of er een verwijderen? Of wat als u slechts naar één knooppunt van een client kijkt? In plaats van het op jouw manier te doen, bind je de tafel aan een groter object (ik ben geen dokter, dus ik weet niet zeker wat het antwoord is) zoals patiënt- of lymfesystemen. Of allebei. Voorbeeld:

Een patiënt heeft veel systemen (een-op-veel-relatie tussen patiëntentafel en systeemtafel) Een lymfesysteem heeft veel organen (een-op-veel-relatie tussen lymfesysteem en organen) Een systeem of orgaan heeft veel testen (een een-op-veel-relatie tussen systemen en tests).

Voorbeeld:

Deze tabel mag alleen gegevens bevatten die betrekking hebben op een individuele patiënt

Deze tabel mag alleen kolommen bevatten die specifiek zijn voor alle systemen. Systemen kunnen lymfesystemen, ademhalingssystemen, uitscheidingssystemen, enz. zijn.

TablePatient_TableSystems

Je kunt niet veel tot veel relaties hebben. Deze tabel lost dat op. Als u dit niet had, zou u voor elke patiënt/systeem redundante records moeten bijhouden in elke tabel

Lost de veel op veel op voor systemen en organen

Nu voor testen. Zijn tests specifiek voor organen of systemen? Of allebei? Dit voorbeeld zegt beide

TabelTest

Er is hier veel, dus ik denk dat dit een goede plek is om te stoppen. Lees de gegevensnormalisatie door en als u vragen heeft, kunt u hier een bericht plaatsen (of mij een bericht sturen).



  1. Welk type JDBC-stuurprogramma moet ik gebruiken om toegang te krijgen tot een Oracle-database?

  2. java.sql.SQLEException:ORA-01843:geen geldige maand

  3. 7 manieren om uw Oracle-versie te controleren

  4. Dwing het invoegen van records in meerdere tabellen af