Moin!
Offenbar scheint alles möglich zu sein: komplett gemischte Klein- und Großschreibung, beim Zugriff wird offenbar auch nicht unterschieden. Ich kann also auf ein Attribut "Name" durchaus mit "nAME" zugreifen. Funktioniert zumindest bei mir (MySQL 4.x).
Ob das klappt, hängt unter anderem auch vom benutzten Dateisystem ab, und das wiederum vom benutzten Betriebssystem. MySQL speichert jede Tabelle der Datenbank in mindestens einer Datei - und deren Dateiname ist z.B. unter Windows case-insensitiv, daher reagiert auch MySQL auf die Namensangaben in SQL-Queries, die den Tabellennamen erwähnen, case-insensitiv. Das funktioniert aber nur, solange die Datenbank nicht auf ein System mit case-sensitivem Dateisystem (z.B. Linux) transferiert wird. Dort ist dann auch MySQL case-sensitiv gegenüber den SQL-Queries.
Von daher ist es eine extrem gute Idee, sämtliche Namensangaben aus Prinzip ausschließlich in Kleinschreibung zu wählen. Im Gegensatz dazu ist es dann wiederum eine nicht verkehrte Idee, sämtliche Befehle im SQL-Query in Grossschreibung zu wählen, auch wenn das nicht zwingend vorgeschrieben ist. Es hat sich als Konvention verbreitet.
Außerdem sollte man natürlich problematische Namensgebung vermeiden. Also keine Zeichen verwenden, die außerhalb des ASCII-Zeichenbereich liegen - z.B. keine Umlaute! Keine Sonderzeichen. Keine reservierten Worte.
Hinsichtlich der IDs für zu verknüpfende Tabellen würde ich anregen, in den zwei Tabellen jeweils identische Spaltenbezeichnungen zu wählen. Das ist erstens optisch netter (was gleich heißt, ist das Gleiche), und zweitens bietet es auch im Query einen Vorteil: Statt "JOIN tab2 ON tab1.id = tab2.fremdid" kann man "JOIN tab2 USING idspalte" verwenden, wenn tab1.idspalte und tab2.idspalte existieren. Kürzt den Query ab, bringt optische Klarheit - ändert aber nix an der Performance. Trotzdem halte ich es für sinnvoll.
- Sven Rautenberg
"Love your nation - respect the others."