| | 126 | |
| | 127 | |
| | 128 | == Datamodel == |
| | 129 | |
| | 130 | Vanuit het startscherm van OpenAC kan de beheerder inzicht verkrijgen in hoe het '''logische''' datamodel van OpenAC in elkaar zit. Dit is waar OpenAC zelf mee rekent. Het datamodel wordt ingelezen uit de `structuur.tsv` bestanden; de weergave in het datamodel-scherm is makkelijker te begrijpen. De '''fysieke''' database wordt dan weer afgeleid van het logische datamodel volgens bepaalde regels (die afhankelijk zijn van de database die je gebruikt). |
| | 131 | |
| | 132 | |
| | 133 | Om het logisch datamodel te kunnen vertalen naar het fysieke datamodel moet je weten welke regels OpenAC toepast. Bij relaties is dit ondermeer afhankelijk van het koppeltype. |
| | 134 | |
| | 135 | Enkele vertaalregels van het logische naar het fysieke model: |
| | 136 | * toptabellen en subtabellen krijgen in het fysieke model de suffix "_data" |
| | 137 | - patient -> patient_data |
| | 138 | - postadres -> postadres_data |
| | 139 | * velden krijgen de prefix "<tabelnaam>_" |
| | 140 | - patient:key -> patient_data.patient_key |
| | 141 | * koppel- of tussentabellen vind je (op een enkele uitzondering na) niet terug in het logisch datamodel. Je kunt ze afleiden uit het koppeltype van de relatie. |
| | 142 | * ook foreign keys vind je niet terug in het logisch datamodel, deze kun je eveneens afleiden uit het koppeltype van de relatie. |
| | 143 | * relaties worden in het datamodel weergegeven als tabel(<tabelnaam>) of code(<tabelnaam>) |
| | 144 | - patient:adressen tabel(postadres) is een relatie tussen tabel patient_data en postadres_data. De naam van de relatie is "adressen" en het koppeltype bepaalt of OpenAC een tussentabel aanmaakt en in welke tabel de foreign key komt. |
| | 145 | * Koppeltypes vind je terug in het structuurscherm. Enkele voorbeelden van koppeltypes: |
| | 146 | - Meerwaardig veld (subtabel of tussentabel). Een voorbeeld van dit koppeltype is patient:adressen. Bij een koppeling tussen een toptabel en een subtabel dan komt de key van de toptabel als foreign key in de subtabel. postadres_data heeft daarom foreign key patient_key. Bij een koppeling tussen twee toptabellen of een toptabel en een codetabel maakt OpenAC een koppeltabel aan. |
| | 147 | - Doelkey in moedertabel. Een voorbeeld van dit koppeltype is notaregel:traject, gedefinieerd als notaregel:traject tabel(fin-traject). notaregel_data krijgt als foreign key traject_key. |
| | 148 | - Moederkey in doeltabel. Dit is het default koppeltype. Als er geen koppeltype staat bij de opties van de relatie, dan betreft het koppeltype "moederkey in doeltabel". Voorbeeld: behandeling:verwijzing, verwijzing_data heeft behandeling_key als foreign key. |
| | 149 | * De naamgeving voor koppeltabellen is <tabelnaam1>_<relatienaam> |
| | 150 | - behandeldag:bestanden tabel(bestand) wordt dus behandeldag_bestanden. Een koppeltabel heeft vaak een samengestelde primary key, in dit geval zowel behandeldag_key als bestand_key. Beide velden zijn foreign key. |
| | 151 | * Virtuele velden staan in het logisch datamodel maar vind je niet terug in het fysieke datamodel. De waarde van een virtueel veld wordt door OpenAC berekend. Of een veld virtueel is of niet kun je opzoeken in het structuurscherm, net als bij de koppeltypes. |
| | 152 | |