Hallo Leute,
hab da mal ein paar Fragen.
1. Joins
ist das mit den ON teil so ok? oder geht das besser?
Glaub mal gelesen zu haben das man im ON teil nicht mehrere
Bedingungen angeben sollte.
Hier hab ich zwei innerjoins verwendet um aus der dritten tabelle
den Namen des Landes zu holen.
Funktionieren tut es, nur ist der Aufbau so ok (performance)?
2. Indexe
Ist es richtig das man auf alle Spalten die in Where Bedingungen vorkommen ein index setzen sollte?
3. unique
beispiel
Die Email Adresse soll nur einmal in der DB vorkommen.
Was ist besser,
beim senden eines Formulars eine Abfrage machen
und schauen ob die email schon vorhanden ist, dann weiter zum Eintragen (insert into), oder gleich zum insert (emailspalte unique) und danach schauen per mysql_errno ob die Daten eingetragen wurden.
4. Primärschlüssel
Wozu ist dieser jetzt gut.
Bin da bei mysql.de nicht ganz schlau draus geworden.
hab da mal ein paar Fragen.
1. Joins
ist das mit den ON teil so ok? oder geht das besser?
Glaub mal gelesen zu haben das man im ON teil nicht mehrere
Bedingungen angeben sollte.
PHP-Code:
//Abfrage zu jedem Artikel aus der Warenkorb Tab. die restlichen Daten zum artikel aus der Produkt Tab holen.
$sql = mysql_query("
SELECT
t1.id as wid,
t1.artikel_id,
t1.menge,
t1.vari1,
t1.vari2,
t1.vari3,
t1.vari4,
t2.id as pid,
t2.preis,
t2.artikel_name,
t2.bildklein
FROM
" . TABLE_WARENKORB . " t1
INNER JOIN " . TABLE_PRODUKTE . " t2
ON t1.artikel_id = t2.id
AND t1.sessionid = '" . session_id() . "'
")or die(mysql_error());
Hier hab ich zwei innerjoins verwendet um aus der dritten tabelle
den Namen des Landes zu holen.
Funktionieren tut es, nur ist der Aufbau so ok (performance)?
PHP-Code:
$sql = mysql_query("
SELECT
t1.land,
t1.bestellungen,
t2.id as vkid,
t2.name,
t2.preis,
t2.preisgering,
t2.versandweniger,
t2.beschreibung,
t2.land,
t2.abwievielbest,
t2.aktiv,
t3.id,
t3.name as lname
FROM
" . TABLE_KUNDEN . " t1
INNER JOIN " . TABLE_VERSANDKOSTEN . " t2
ON t1.email = '".$_SESSION['mail']."'
AND t1.land = t2.land
AND t1.bestellungen >= t2.abwievielbest
AND t2.aktiv = '1'
INNER JOIN " . TABLE_LAND . " t3
ON t1.land = t3.id
")or die(mysql_error());
Ist es richtig das man auf alle Spalten die in Where Bedingungen vorkommen ein index setzen sollte?
3. unique
beispiel
Die Email Adresse soll nur einmal in der DB vorkommen.
Was ist besser,
beim senden eines Formulars eine Abfrage machen
und schauen ob die email schon vorhanden ist, dann weiter zum Eintragen (insert into), oder gleich zum insert (emailspalte unique) und danach schauen per mysql_errno ob die Daten eingetragen wurden.
4. Primärschlüssel
Wozu ist dieser jetzt gut.
Bin da bei mysql.de nicht ganz schlau draus geworden.
Kommentar