Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Eigener Datentyp

  1. #11
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Da geht es schon los ... für die Indexunterstützung (Primary Key) musst du Operatoren für deinen Datentyp haben. Schließlich muss die Datenbank zumindest herausfinden können, ob zwei Datensätze gleich sind. Also müssen Vergleiche möglich sein.

    Dann kommen so Sonderfälle hinzu wie:

    ist 0001.0001.0001 gleich 001.0001.0001?

    Ect ect ect ...
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  2. #12
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    Gibt es da vielleicht ein Anfänger-Tutorial?

  3. #13
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Nicht wirklich, sorry.
    Eigene Datentypen schreiben ist nicht kompliziert, aber es ist Arbeit.

    Nach einer Schablone kann man da nicht vorgehen, weil jeder Datentyp anders ist - andernfalls bräuchte man ja keine neuen Typen ;-)


    Btw, würden dir nicht drei Spalten, jeweils mit einem Integer, genügen? Dann bildest du aus den drei Spalten den Primary Key.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  4. #14
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    ja, so haben ich jetzt umgesetzt.

    aus den 3 Spalten? also nicht jede einzeln ein primary key, sondern gemeinsam?

  5. #15
    Avatar von progs
    progs ist offline Super-Moderator
    Registriert seit
    26.11.2005
    Ort
    Kulmbach, Bayern, Germany, 108121049209415, Kulmbach
    Beiträge
    185

    Standard

    Zitat Zitat von karl_ha Beitrag anzeigen
    ja, so haben ich jetzt umgesetzt.

    aus den 3 Spalten? also nicht jede einzeln ein primary key, sondern gemeinsam?
    Jede Spalte einzeln, also 3 Primary Keys, wird nicht klappen...

  6. #16
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    Code:
      CONSTRAINT "pk" PRIMARY KEY("material_kap", "material_hpos", "material_pos", "material_bereich_id"),
    Wie weise ich darauf aber einen Fremdschlüssel zu? (Eine andere Spalte in einer anderen Tabelle soll hier auf alle Primary Keys den Fremdschlüssel haben)

    Ich habe noch nicht dazu gesagt, dass die Werte in den Einzelspalten durchaus mehrfach vorkommen können. (z.B. 344) Die Gesamtzahl ist aber einmalig. (344.333.444 und 344.333.445).

  7. #17
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von karl_ha Beitrag anzeigen
    Code:
      CONSTRAINT "pk" PRIMARY KEY("material_kap", "material_hpos", "material_pos", "material_bereich_id"),
    Wie weise ich darauf aber einen Fremdschlüssel zu? (Eine andere Spalte in einer anderen Tabelle soll hier auf alle Primary Keys den Fremdschlüssel haben)
    Code:
    test=*# create table t1 (a int, b int, c int, primary key(a,b,c));
    NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "t1_pkey" for table "t1"
    CREATE TABLE
    Zeit: 5,162 ms
    test=*# create table t2 (a int, b int, c int, foreign key(a,b,c) references t1);
    CREATE TABLE
    Zeit: 28,862 ms
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  8. #18
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    Code:
    CREATE TABLE / PRIMARY KEY will create implicit index "t1_pkey" for table "t1"
    
    CREATE TABLE t2 (a int, b int, c int, foreign key(a,b,c) references t1);
    Sprich, die Anzahl der Schlüssel muss immer gleich sein. (hier 3: a,b,c)

    Macht es dann aber nicht mehr Sinn, einfach noch eine ID-Spalte (etwa Serial) hinzuzufügen und auf diese zu verweisen.?

    Ich möchte ja, dass eine Spalte auf 3 Spalten den Fremdschlüssel hat. Und nicht, dass ein Schlüssel 3 Spalten mit 3 Spalten "verknüpft".

  9. #19
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von karl_ha Beitrag anzeigen
    Code:
    CREATE TABLE / PRIMARY KEY will create implicit index "t1_pkey" for table "t1"
    
    CREATE TABLE t2 (a int, b int, c int, foreign key(a,b,c) references t1);
    Sprich, die Anzahl der Schlüssel muss immer gleich sein. (hier 3: a,b,c)

    Macht es dann aber nicht mehr Sinn, einfach noch eine ID-Spalte (etwa Serial) hinzuzufügen und auf diese zu verweisen.?
    Depends. Wolltest Du einen Unique Constraint auf die 3 Spalten in T1 haben?

    Ich möchte ja, dass eine Spalte auf 3 Spalten den Fremdschlüssel hat. Und nicht, dass ein Schlüssel 3 Spalten mit 3 Spalten "verknüpft".
    Hm. Am fehlenden Kaffee kann es einklich nicht liegen, daß ich diesen Satz jetzt nicht verstehe.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  10. #20
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    Ich hatte wohl zu wenig Kaffee...nochmal:


    In t1 habe ich einen zusammengesetzten Schlüssel: a, b, c.

    t2 soll auf diese Schlüssel verweisen. Müssen deshalb Spalten a, b, c (aus t1) in t2 vorhanden sein? Oder kann man der Spalte x in t2 a, b, c zusammen zuweisen.

    Karl

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum