Hallo,
ich wollte eigentlich eine simple logische Verknüpfung verwenden, aber im Endeffekt scheint die Sache doch nicht so trivial zu sein. a_id und h_id sind Primärschlüssel.
+------+------+------+------+--------------+------+-----------+----------+
| a_id | h_id | g_id | t_id | beschreibung | bild | artikelnr | style |
+------+------+------+------+--------------+------+-----------+----------+
| 1 | 11 | 3 | 1 | test2 | | 89768978 | XD/3D |
+------+------+------+------+--------------+------+-----------+----------+
Ich möchte verhindern, dass neue Einträge dann nicht gespeichert werden, wenn folgendes zutrifft:
Die Parameter des zu speichernden Eintrags dürfen nicht die selben Werte haben wie h_id, g_id, t_id und style zusammen als ein Tupel. Die Artikelnummer darf überhaupt nur einmal in allen Einträgen vorkommen, ist aber kein Pflichtfeld. Müsste ich hier mit 2 SELECT-Anweisungen arbeiten indem ich zuerst prüfe ob artikelnr schon mal vorkommt, und dann prüfe, ob die 4 Parameter einem Tupel entsprechen, oder geht das irgendwie eleganter?
Die Artikelnummer kann nicht als PK definiert werden, da
1.) a_id auto_increment ist
2.) a_id nicht weggelassen werden kann, da h_id öfter als ein Mal vorkommen darf. Somit ist man auf a_id angewiesen.
3.) die Artikelnummer kein Pflichtfeld ist. Somit kann die Artikelnummer kein Schlüssel sein.
Markus