Philipp Hasenfratz: SQL-PHP-Problem

Beitrag lesen

Halihallo Cheatah

=> Vorteil: NATURAL JOIN macht den Query schön schlank

Unwichtig.

Nein. Leserlich. Ich bevorzuge NATURAL JOIN's vor Equi/Theta-Joins. Mit ID als Indikator
für Primary Key verunmöglichst du NATURAL Joins; und das nur, um einer
Konvention zu genügen? - Zudem halte ich ID schon für eine Konvention, bin jedoch der
Meinung, dass ein Prefix nicht ausgeschlossen werden sollte.

=> Nachteil: wer einen findet, soll ihn nennen.
Die Namen werden äußerst unhandlich.

Ja.

Konventionen wie z.B. "ID => Primary Key" werden umwandert.

s. oben. Ob ID, id oder usr_id; ist für mich alles ein Indiz für Primary Key.

Änderungen in Tabellennamen wirken sich auf Spaltennamen aus (okay, ist eher unwesentlich).

Dennoch, deine Kritik trifft zu.

Bei komplexen Verknüpfungen (die z.B. nicht über nur eine Spalte gehen) weiß am Ende niemand mehr, zu welcher Tabelle eine Spalte eigentlich gehört.

Eben doch! - Genau _wegen_ der Prefixe. Wie kommst du zu dieser Überzeugung?

Das Prefix einer Spalte, welches ja nun einem Tabellennamen(-kürzel) entspricht, hat nichts mit der Tabelle zu tun, zu der die Spalte gehört.

Meinst du die Foreign Key's, welche die referenzierte Tabelle als Prefix verwenden?
Nun, stimmt, hier ist die Zugehörigkeit nicht mehr ersichtlich. Aber du vergisst, dass
NATURAL JOIN's im Gegensatz zum Theta- gleichnamige Spalten als _eine_ ausgibt.
Gleichnamige Spalten haben unter Verwendung des NATURAL JOIN's keinen Bezug zu einer
bestimmten Tabelle mehr, ein weiterer Grund prefixe zu verwenden.
Zudem, bei deiner Syntax ist eine Zuordnung überhaupt nicht möglich.

Ich bevorzuge nach wie vor eine Benamsung, die nur innerhalb der Tabelle eindeutig sein muss; zusammen mit Nomenklaturen, die z.B. "ref_tabelle" oder "ref_tabelle_spalte" als Referenzen vorsehen. Die "[schema.]tabelle.spalte"-Schreibweise mit irgendeiner Nomenklatur unbedingt umgehen zu wollen, halte ich nicht wirklich für sinnvoll.

Du hast recht, die "Technologie" darf nicht von einer Namensgebung abhängig sein.
Nur, wenn alle so denken wie du, dann gäbe es den Begriff des NATURAL JOIN's nicht und
dieser ist bei der Relationenalgebra fundamental, stimmt dich das nicht nachdenklich?

Danke für dein Feedback, ich werde zwar bei meiner geliebten (*g*) Notation bleiben, aber
deine Kritik ist gut[1]. Vielleicht noch etwas kleines: Ich verwende diese Notation nicht
ausschliesslich, weil es sich für NATURAL JOIN's etc eigenet; ich finde diese Notation
auch einfach nur "schön".

[1] sehr gut. Du machst mir eine Gegenargumentation schwer ;)

Viele Grüsse

Philipp