fragen zu einer db-entwurf(sekondary key,not null)



  • hallo zusammen.
    ich habe einen db-entwurf für einen lizenzverwaltungssystem erstellt und habe dazu ein paar unklarheiten. deswegen bitte ich euch um einen Rat.
    ich zittiere in diesem beitrag nur einen problem.

    1. ein computer kann (aber muss nicht) zu einer Mitarbeiter gehören .dh ein computer kann entweder zu einem mitarbeiter,abteilung oder die ganze firma gehören(zugeordnet sein). momentan habe ich das so realisiert.
      mitarbeiter 1----n computer (ein mitarbeiter hat mindestens einen computer)
      abteilung 1----n computer (dieses computer gehört zu keinem mitarbeiter, sondern der ganze abteilung zb ein server)
      niederlassung 1-----n (ein computer kann zu der ganze niederlassung gehören und wird von allen mitarbeiter benutzt zb internet rechner).
      ich habe in der tabelle computer 3 sekondary keys. bei jeder datensatz muss genau einer dieser sekondary key not null sein und die anderen zwei müssen null sein. wie kann ich das realisieren in db.
      ich habe db vorlesung 2 jahre hinter mir. falls ihr gute tutorials kennt wo das thema bechprochen ist her damit
      danke im voraus.

    youssef



  • Also darf ein Computer nur einem "Objekt" gehören (Computer, Abteilung, Firma).

    Dann könntest du doch noch eine Extra-Tabelle erstellen, die so aussieht:
    (BesitzTypID)
    1 Computer
    2 Abteilung
    3 Firma

    Die Tabelle des Computers sehe dann so aus:

    ID  BesitzID  BesitzTypID
    1   4         2
    

    Abteilung:

    ID Name ...
    

    Der Nachteil an der Methode ist, dass du nicht sofort den Besitzer eines Rechners rausbekommst, sondern erst die richtige Tabelle auswählen musst, aus welcher der Besitzer ausgelesen werden muss. Ausser ein SQL-Experte findet da nen Workaround ;).
    Zu deinem Design: Mir ist leider nichts datenbankseitiges bekannt, was deine Bedingung mit der NULL erfüllen könnte.



  • Computer = Mitarbeiter...


Anmelden zum Antworten