Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Grundlegende Design-Fragen

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von zeppr, 14 Oktober 2014.

  1. zeppr

    zeppr Neuer Benutzer

    Hallo Leute,

    folgende Gegebenheiten:
    Ein Schädlingsbekämpfer betreut Kunden. Jeder Kunde hat eine gewisse Anzahl an Schädlings-Fallen bei sich stehen. Es gibt 3 Typen von Fallen, die alle unterschiedliche Attribute haben.
    Beim Kontrollgang vor Ort wird zu jeder Falle des Kunden das Datum und ein Befund (=befüllen der Falllenattribute) vermerkt.

    Bsp:
    1. Am 14.10.2014 wird bei Firma ACME eine Falle vom Typ A befundet, 3 von Typ B und 2 von Typ C
    2. Am 21.10.2014 wird bei Firma ACME eine Falle vom Typ A befundet, 3 von Typ B und 2 von Typ C
    3. Am 21.10.2014 wird bei Firma XYZ 3 Fallen vom Typ A befundet, 1 von Typ B und 4 von Typ C
    Jede Falle lässt sich also eindeutig zu einer Firma und einem Tag zuweisen. Eine Falle muss aber auch eindeutig in der Fallen-Liste der Firma identifizierbar sein, auch wenn sie vom gleichen Typ ist.

    Als Kern-Entities betrachte ich die Fallentypen, die ich per FK Constraint einer Firma zuordne.
    Jetzt bräuchte ich Denkanstöße wie ich die Fallen-Liste verwalten könnte, bzw. ob meine Vorgehensweise so überhaupt sin ergibt.

    Anbei auch ein Versuch eines ER Diagrams.

    Danke für Eure Hilfe!
    LG
     

    Anhänge:

  2. akretschmer

    akretschmer Datenbank-Guru

    Wo genau ist Dein problem?

    Code:
    test=# create table fallen_haupttabelle(id int primary key, inv_nummer int);
    CREATE TABLE   
    
    test=*# create table fallen_typ1 (eigenschaft1_1 text) inherits (fallen_haupttabelle);
    CREATE TABLE   
    Time: 74,024 ms   
    test=*# create table fallen_typ2 (eigenschaft2_1 int) inherits (fallen_haupttabelle);
    CREATE TABLE   
    Time: 0,809 ms   
    
    test=*# insert into fallen_typ1 values (1, 1, 'Testfalle fallentyp1');
    INSERT 0 1
    Time: 0,434 ms
    test=*# insert into fallen_typ1 values (2, 12, 'Testfalle fallentyp2');
    INSERT 0 1
    Time: 0,177 ms
    test=*# select * from fallen_haupttabelle;
     id | inv_nummer
    ----+------------
      1 |  1
      2 |  12
    (2 rows)
    
    test=*# insert into fallen_typ2 values (3, 32, 120);
    INSERT 0 1
    Time: 20,321 ms
    test=*# select * from fallen_haupttabelle;
     id | inv_nummer
    ----+------------
      1 |  1
      2 |  12
      3 |  32
    (3 rows)
    
    test=*# select * from fallen_typ2;
     id | inv_nummer | eigenschaft2_1
    ----+------------+----------------
      3 |  32 |  120
    (1 row)
    
    
    So gäbe es allerdings noch ein Problem: die ID als PK sollte aus einer globalen Sequence kommen.
    So könnte man die Fallen halt trotz unterschiedlicher Typen sinnvoll verwalten.

    Alternative: alles in eine Tabelle und die Eigenschaften in einem extra Feld als HSTORE oder JSON(B). Alles natürlich unter Verwendung von PostgreSQL als DB-System.

    Oder hab ich Dich falsch verstanden?
     
  3. Hony%

    Hony% Datenbank-Guru

    Hi zeppr.

    Dann braucht jede Falle eine eindeutiges, gegebenenfalls künstliches, Kennzeichen. Das muss allerdings keine Auto-ID sein, sondern kann sich zum Beispiel aus Fallentyp und Seriennummer zusammensetzen.

    Die Attribute lassen sich dann durchaus in verschiedenen Tabellen per FK verwalten.

    Gruß
    Hony
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden