Hi,
Und ID-Spalten benötigen *nicht* den Namen der Tabelle. "id" reicht absolut aus. Es geht um die "member.id", nicht um "t_members.memberid".
Gleiche Dinge sollten gleich heißen.
also IDs beispielsweise "id" ;-)
Wenn man die ID nicht nur aus Spaß, sondern als Fremdschlüssel in anderen Tabellen nutzt, dann bietet es sich geradezu zwingend an (zumindest in meiner bescheidenen MySQL-Welt), die ID trotz gleichlautenden Tabellennamens ausführlicher zu benennen - und in den anderen Tabellen dann logischerweise gleichlautend.
Spätestens wenn man mit mehreren Tabellen in einem Statement arbeitet, sollte man grundsätzlich alle Spalten mit der entsprechenden Tabelle bezeichnen, also "tabelle.spalte". Ein "tabelle.tabellespalte" ergibt für mich nur mäßig Sinn. Darüber hinaus bricht das Schema bei Selbstreferenzen und Kreuztabellen, die mit mehreren Spalten die selbe Tabelle referenzieren.
Vorteil: JOINs können USING (member_id) verwenden anstelle von ON member.id = whatever.member_id, wenn es darum geht, die FK-Verbindung zu nutzen. Diese Schreibweise bevorzuge ich.
Ich bin im allgemeinen ein Verfechter von "explicit is better than implicit", so auch hier. Sofern der Ausführungsplan davon nicht betroffen ist, empfehle ich die Nennung der jeweiligen Tabellen und Spalten anstelle eines Hauches von Magie.
Cheatah
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes