Datenbank: FB • Version: 1.5 • Zugriff über: egal
DB-Design-Frage: unique index richtig verwenden
Hallo #,
zum Topic viel mir nichts besseres ein ... also: Personen sollen Projekten oder Projektpositionen zugeordnet werden. Dabei gibt es folgende Bedingungen: Bed_1. keine doppelten Zuordnungen Bed_2. ist eine Person dem Projekt zugeordnet, kann sie keiner Position dieses Projektes zugeordnet werden (das Projekt reicht ja in diesem Fall) Bed_3. eine Person kann mehreren Positionen des Projektes zugeordnet werden Meine Tabelle sieht bisher wie folgt aus (Änderungen sind noch möglich) Tabelle: Id(autoinc),PersonalId,ProjectId,PosId Bei Projekt-Einträgen ist PosId=0 Kann ich jetzt durch unique indices die Inforderungen erfüllen ? idx_1: (PersonalId,ProjectId,PosId) -> Bed_1 erfüllt, Bed_3 erfüllt, Bed_2 nicht erfüllt Geht das überhaut über die DB ? Heiko |
Re: DB-Design-Frage: unique index richtig verwenden
Ich würde es mal mit einem check constraint versuchen. Bin mir aber nicht sicher, ob die Anforderung nicht zu komplex ist.
|
Re: DB-Design-Frage: unique index richtig verwenden
Hallo,
deshalb hatte ich es nicht als mögliche Lösung erwähnt .. ;( Nun ja, mal sehen, ob ich das in ner SP hinbekomme. aber per Unique Index ginge es nicht ? Ich bin noch offen (habe noch keine Tabelle angelegt). Ich könnte auch 2 Tabellen nehmen (für Projekt und Position), aber das macht das ja noch komplizierter. Heiko |
Re: DB-Design-Frage: unique index richtig verwenden
Test doch mal, ob so fehlerhafte Inserts akzeptiert werden
|
Re: DB-Design-Frage: unique index richtig verwenden
Hallo,
brauche ich nicht, sieht man doch auch so Id,PersonalId,ProjectId,PosId 1,100,1,0 2,100,1,10 Das geht, aber jetzt steht die Person sowohl im Project als auch in der Position 10 des gleichen Projektes. Der Index erlaubt aber folgendes und das soll er ja auch 3,100,1,5 4,100,1,10 2 Positionen. Heiko |
Re: DB-Design-Frage: unique index richtig verwenden
Habe mir eine Testtabelle angelegt. Ein check constraint funktioniert
|
Re: DB-Design-Frage: unique index richtig verwenden
Hallo,
hm ? wie sieht der denn aus? habe gerade einen leeren Kopf. Heiko |
Re: DB-Design-Frage: unique index richtig verwenden
SQL-Code:
not exists (select pos from <tabelle> where persid=new.persid and projektid = new.projektid and pos = 0)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz