Spezialisierung statisch lösen

Catalamo

Neuer Benutzer
Beiträge
1
Hallo,
Wir haben in der Schule eine Datenbank in der Cheng Notation erstellt und sollten diese dann dazu ein ERD erstellen. Es gab tbl_Mitarbeiter mit den Attributen Name und PersonalNummer. Speziallisierungen davon sind tbl_Professor und tbl_Assistent, die beide zusätzlich unterschiedliche Attribute besitzen.
Die Lösung die im ERD zu realliesieren war, die Attribute von tbl_Mitarbeiter bei tbl_Assistent und tbl_Professor hinzuzufügen. Dann kann es aber dazu führen, dass die PersonalNummer doppelt vergeben wird. Natürlich kann dies durch dynamische Software verhindern werden. Ziel war es aber, dies statisch innerhalb der Datenbank zu gewährleisten.
Falls ihr Ideen habt würde mich dies sehr freuen.

LG Catalamo
 
Werbung:
Hallo,
Wir haben in der Schule eine Datenbank in der Cheng Notation erstellt und sollten diese dann dazu ein ERD erstellen. Es gab tbl_Mitarbeiter mit den Attributen Name und PersonalNummer. Speziallisierungen davon sind tbl_Professor und tbl_Assistent, die beide zusätzlich unterschiedliche Attribute besitzen.
Die Lösung die im ERD zu realliesieren war, die Attribute von tbl_Mitarbeiter bei tbl_Assistent und tbl_Professor hinzuzufügen. Dann kann es aber dazu führen, dass die PersonalNummer doppelt vergeben wird. Natürlich kann dies durch dynamische Software verhindern werden. Ziel war es aber, dies statisch innerhalb der Datenbank zu gewährleisten.
Falls ihr Ideen habt würde mich dies sehr freuen.

LG Catalamo


Mit ERD und so kann ich da nicht helfen, aber mit der praktichen Lösung Deines Problems:

Code:
test=# create table mitarbeiter (pers_nummer serial primary key, name text);
CREATE TABLE
test=*# create table professor (titel text) inherits (mitarbeiter);
CREATE TABLE
test=*# create table assistent (info text) inherits (mitarbeiter);
CREATE TABLE
test=*# insert into professor (name, titel) values ('meier','superhirn');
INSERT 0 1
test=*# insert into assistent (name, info) values ('max','macht seine sache gut');
INSERT 0 1
test=*# select * from mitarbeiter;
 pers_nummer | name
-------------+-------
  1 | meier
  2 | max
(2 rows)

test=*# select * from professor ;
 pers_nummer | name  |  titel
-------------+-------+-----------
  1 | meier | superhirn
(1 row)

test=*# select * from assistent ;
 pers_nummer | name |  info
-------------+------+-----------------------
  2 | max  | macht seine sache gut
(1 row)

Über die ID's mache ich mir im Insert exakt KEINE Angaben, das macht die DB für mich.
 
Werbung:
Zurück
Oben