ER-diagram for apotek-system: Entiteter, relationer & database-design

Et Entity-Relationship (ER) diagram modellerer datastrukturen for et apotek-ledelsessystem. Nedenfor er et normaliseret design der fanger kerne-entiteter og relationer.

Kerne-entiteter

Medicin

  • MedicineID (PK)
  • Navn
  • Beskrivelse
  • QuantityInStock
  • UnitPrice
  • ExpiryDate
  • Producent
  • Kategori (OTC, Recept, Kontrolleret)

Kunde

  • CustomerID (PK)
  • Fornavn, Efternavn
  • Telefonnummer
  • Email
  • Adresse
  • Fødselsdato (for aldersbegrænsede mediciner)
  • Forsikringsinfo (valgfrit)

Ansæt

  • EmployeeID (PK)
  • Fornavn, Efternavn
  • Rolle (Farmaceut, Tekniker, Kassamedhjælper, Leder)
  • Licensnummer (for farmaceuter)
  • Anstældelsesdato
  • Vagtskema

Salg (Transaktion)

  • SaleID (PK)
  • CustomerID (FK)
  • EmployeeID (FK) – hvem der processerede salget
  • SaleDateTime
  • TotalAmount
  • PaymentMethod
  • PrescriptionID (FK, nullable)

Salgslinje (Linjevarer)

  • SaleItemID (PK)
  • SaleID (FK)
  • MedicineID (FK)
  • Antal
  • UnitPriceAtSale
  • Subtotal

Recept

  • PrescriptionID (PK)
  • CustomerID (FK)
  • PrescriberID (FK – ekstern læge)
  • Udstedelsesdato
  • Udløsesdato
  • Status (Aktiv, Udløst, Udløbet, Annulleret)
  • Genværende genopfyldninger

Leverandør

  • SupplierID (PK)
  • Navn
  • Kontaktinfo
  • LeadTimeDays

Indkøbsordre

  • POID (PK)
  • SupplierID (FK)
  • EmployeeID (FK – hvem der bestilte)
  • Ordredato
  • Forventet leveringsdato
  • Status

Vigtige relationer

  • Kunde 1:M Salg (En kunde foretager mange salg)
  • Salg 1:M Salgslinje (Et salg indeholder flere varer)
  • Medicin 1:M Salgslinje (En medicin optræder i mange salgslinjer)
  • Ansæt 1:M Salg (En ansat processerer mange salg)
  • Kunde 1:M Recept (En kunde har mange recepter)
  • Recept 1:M Salg (En recept kan udløses over flere salg)
  • Leverandør 1:M Indkøbsordre
  • Indkøbsordre 1:M Indkøbsordrelinje (ikke vist, linker til Medicin)

Design-bemærkninger

  • Separat Salg og Salgslinje tillader variable varer per transaktion
  • Recept-entitet understøtter genopfyldning-sporering og regulatorisk overholdelse
  • Overvej at tilføje InventoryAuditLog til lager-forskylning-sporering
  • Indexer på MedicineID, CustomerID, SaleDateTime optimerer almindelige forespørgsler

Medicinske faciliteter