Basistable ableiten

FX202

Neuer Benutzer
Beiträge
1
Guten Abend,
ich habe folgendes Problem und weiß ehrlich gesagt nicht wie ich das mit meinem Grundwissen lösen soll.

Ich möchte ein Table erstellen, dass als sozusagen, Grundtable fungiert von dem ich dann mehr oder weniger ableiten kann.

Also das Grundtable soll als Basis dienen. Es soll zumindest die notwendigen Datentypen beinhalten die gebraucht werden und die Menge der Spalten wird, sofern sich nichts ändert, so um die 100 betragen.

Nun die Idee wäre nun aus dieser Basistable die notwendigen Spalten auszuwählen, die restlichen sollen entweder nicht mehr sichtbar sein und mit Platzhalter gefüllt werden oder, was mir persönlich lieber wäre, gelöscht werden.

Anschließend dieses abgeleitete Table unter einem Namen abspeichern damit man dieses Table dann für einen anderen Dateninput verwenden kann.

Ich hoffe es ist einigermaßen verständlich erklärt.

Ansonsten habe ich folgenden Erklärung:

Ich möchte das Table Frau/Mann erstellen, dass alles gute und böse beinhaltet, dass eine/n Frau/Mann ausmacht kann.
Wenn ich eine/n böse Frau/Mann haben will, wähle ich natürlich alles aus was eine/n Frau/Mann so böse macht und will das dann anschließend als Böse/r Frau/Mann abspeichern. Wenn ich dann irgendwann dieses Table haben will möchte ich das dann nur mehr auswählen um dort die Werte eintragen zu können.

Vielen Dank für eventuell Tipps oder Techniken.
 
Werbung:
Suchst Du vielleicht sowas?

Code:
test=# create table fahrzeug(id serial primary key, name text);
CREATE TABLE
test=*# create table fahrrad(sattelform text) inherits (fahrzeug);
CREATE TABLE
test=*# create table auto(p int) inherits (fahrzeug);
CREATE TABLE
test=*# create table rakete (stufen int) inherits (fahrzeug);
CREATE TABLE
test=*#

Aber warum willst Du aus der Grundtabelle dann wieder Spalten nicht haben? Geerbete Spalten können nicht entfernt werden:

Code:
test=*# alter table rakete drop column name;
FEHLER:  geerbte Spalte »name« kann nicht gelöscht werden
test=*#

Du kannst auch eigene zusammengesetzten neue Datentypen erstellen:

Code:
test=*# create type fahrzeuge as (name text, hersteller text, leistung_in_ps int);
CREATE TYPE
test=*# create table autos (id serial primary key, detail fahrzeuge);
CREATE TABLE
test=*# insert into autos values (1, row('Trabbi','DDR',26));
INSERT 0 1
test=*# select * from autos;
 id |     detail     
----+-----------------
  1 | (Trabbi,DDR,26)
(1 Zeile)
test=*# select id, (detail).name, (detail).leistung_in_ps from autos;
 id |  name  | leistung_in_ps
----+--------+----------------
  1 | Trabbi |             26
(1 Zeile)

Ist es das, was Du suchst?

Dein Frau/Mann - Beipsiel kann ich nicht nachvollziehen.
 
Hallo,

du vermischt hier Persistence und View. Auf Datenbankseite hast Du Tabellen - welche Spalten davon wie angezeigt werden entscheidet die Anwendung.
In deinem Beispiel hätte man typischerweise eine Tabelle PERSON mit einem Primärschlüssel, Geschlecht, Namen, Vornamen, Geburtsdatum etc.
Daneben gibt es eine weitere Tabelle Eigenschaft die auf die Person referenziert und zusätzlich z.B. die Felder Eigenschaft und Art enthält.

Dim

PS: Wenn man es ganz genau machen möchte, dann hängt man zwischen Person und Eigenschaft eine Tabelle Charaktereigenschaft, die einen Wert aus Eigenschaft mit einer Person verbindet. Damit vermeidet man doppelte Nennungen von Eigenschaften.
Die Eigenschaft Jähzorn kann also über die Zwischentabelle Charaktereigenschaft verschiedenen Personen zugeordnet werden, muss aber nur einmalig in der Tabelle Eigenschaft auftauchen.
 
Werbung:
Zurück
Oben