Relationen von 3 Entitäten

Jubelius

Neuer Benutzer
Beiträge
2
Hallo,

ich habe folgendes Problem bei der Umsetzung einer Datenbank, und bin mir nicht sicher, ob sich dass überhaupt irgendwie abbilden lässt:

zkwBmh0.png


Es geht primär um die 3 Entitäten: Klasse(Class), Material und Merkmal(Attribute).
Hier die Beziehungen mal erklärt:
Eine Klasse kann mehrere Attribute beinhalten, und ein Attribut kann zu mehreren Klassen gehören.
Ein Material kann nur zu einer einzigen Klasse gehören und darf auch nur dessen Merkmale erhalten.

Jetzt Könnte man sagen, das die Beziehung zwischen Material und Merkmal im Bild nicht richtig ist, denn über die Beziehung zwischen Klasse und Material erhält das Material ja bereits die Merkmale einer Klasse.

Aber, das Material erhält zu gewissen Merkmalen natürlich auch Werte oder Wertelisten, sodass die Tabelle etwa wie folgt aussieht:

tb_material
Fingerprint | AttributeId | Content

hierbei muss ich wie gesagt aufpassen, dass das Material keine Merkmale enthält, die nicht zu der vorher zugewiesenen Klasse gehören.

Würde mich sehr freuen wenn mir jemand einen Rat geben könnte :)
Danke im Voraus und liebe Grüße
 
Werbung:
Es geht primär um die 3 Entitäten: Klasse(Class), Material und Merkmal(Attribute).
Hier die Beziehungen mal erklärt:
Eine Klasse kann mehrere Attribute beinhalten, und ein Attribut kann zu mehreren Klassen gehören.
Ein Material kann nur zu einer einzigen Klasse gehören und darf auch nur dessen Merkmale erhalten.

Code:
test=# create table klasse(id int primary key, name text);
CREATE TABLE
test=*# create table material(id int primary key, name text);
CREATE TABLE
test=*# create table merkmal(id int primary key, name text);
CREATE TABLE
test=*# create table klasse_merkmal(id_klasse int references klasse, id_merkmal int references merkmal, primary key(id_klasse, id_merkmal));
CREATE TABLE
test=*# create table material_klasse (material_id int references material primary key, klasse int references klasse);
CREATE TABLE
test=*#

Sollte tun was Du willst, oder?
 
Werbung:
Hallo akretschmer,

Danke für die schnelle Antwort.
Das Problem ist, das ich die Tabelle "Material" nicht nur mit einem Namen füllen muss, sondern mit Werten, die sich auf Merkmale beziehen. Allerdings dürfen dann pro Material nur die Merkmale benutzt werden, die auch der Klasse zugeteilt sind.
 
Zurück
Oben