sql >> Database teknologi >  >> RDS >> Sqlserver

Datamodellering for samme tabeller med samme kolonner

Bare fordi data har lignende struktur, betyder det ikke, at det har samme betydning eller samme begrænsninger. Hold dine opslagstabeller adskilt. Dette beholder fremmednøgler separat, så databasen kan beskytte sig selv mod at henvise til den forkerte slags opslagsdata.

Jeg ville ønske, at relationelle DBMS'er understøttede arv, hvor du kunne definere den grundlæggende struktur i den overordnede tabel og blot tilføje specifikke FK'er i de underordnede tabeller. Som det ser ud nu, bliver du nødt til at udholde nogle gentagelser i din DDL...

BEMÆRK:En undtagelse fra reglen "hold opslagstabeller adskilt" kan være, når dit system skal være dynamisk (dvs. være i stand til at tilføje nye slags opslagsdata uden faktisk at oprette nye fysiske tabeller i databasen), men det ser ikke ud til at vej fra dit spørgsmål.

Med én stor opslagstabel vil FK'er alene ikke stoppe (for eksempel) ShippingLog tabel fra at referere til en række beregnet til EmployeeTask bord. Ved at bruge identificerende relationer og migrerende PK'er kan du beskytte dig selv mod dette, men ikke uden at indføre nogle redundanser og have brug for nogle omhyggelige begrænsninger. Det er renere og sandsynligvis mere effektivt at gøre det rigtige og holde opslagstabeller adskilt.



  1. Nummerformatproblem i Oracle

  2. 4 måder at finde rækker, der indeholder store bogstaver i MariaDB

  3. Håndter TIME WITH TIME ZONE korrekt i PostgreSQL

  4. Specialtegn går tabt i MySQL-eksport/import