Steffen: Postgres Inheritance

Hi,

ich habe bisher auf folgende Frage noch keine Antwort finden können.

Wenn ich in Postgres ein Basis-Tabelle definiere und dann eine oder mehrere weitere Tabelle davon ableite, sollte ich auf der Basis-Tabelle einen Primary-Key definieren oder nicht?

Ist ein Primary-Key auf der Basis-Tabelle notwendig, wenn ich nur mit den abgelittenen Tabellen arbeite? Hätte der positive Auswirkungen auf die Performance?

Grüße

  • Steffen
  1. Moin Steffen,

    Wenn ich in Postgres ein Basis-Tabelle definiere und dann eine oder mehrere weitere Tabelle davon ableite, sollte ich auf der Basis-Tabelle einen Primary-Key definieren oder nicht?

    Das hängt davon ab. PKs werden nicht vererbt, das heisst, die abgeleiteten Tabellen erben nicht den PK der Eltern-Tabelle. Das bedeutet, der einzige Grund, warum du einen PK in der Eltern-Tabelle haben willst ist die Sicherstellung der Integrität der Daten in der Eltern-Tabelle.

    Ist ein Primary-Key auf der Basis-Tabelle notwendig, […]

    Nein.

    wenn ich nur mit den abgelittenen Tabellen arbeite? Hätte der positive Auswirkungen auf die Performance?

    Siehe oben. Wenn du nur mit den abgeleiteten (sehr witziger Verschreiber, übrigens ;-) Tabellen arbeitest, dann macht es IMHO keinen Sinn einen PK in der Eltern-Tabelle zu definieren.

    LG,
     CK

    1. Moin,

      hm, da macht mein Password-Manager komische Dinge hier… das sollte natürlich als „Christian Kruse“ verfasst werden.

      LG,
       CK

    2. Hallo,

      danke für die Info.

      Das deckt sich mit meinen bisherigen Erfahrungen und Recherchen.

      Grüße,

      • Steffen