Ich versuche eine Feuerwaffen-Website zu erstellen, die etwa 1000 Waffen aufnehmen wird. Dies sind nicht viele Datenbankeinträge, aber ich versuche die Datenbank so hell wie möglich zu halten. Ich habe fünf Tabellen erstellt, die Normalisierung im Auge behalten, und ich habe Probleme, Daten in alle fünf Tabellen in einer Abfrage zu setzen. Meine Datenbank ist wie so strukturiert:Wie mit mehreren Tabellen arbeiten und keine doppelten Daten erhalten? (MySQL/PDO)
+-----------------+ +-----------------+ +-----------------+ +-----------------+
| make + | model | | image | | type |
+-----------------+ +-----------------+ +-----------------+ +-----------------+
| PK | make_id | | PK | model_id | | PK | model_id | | PK | type_id |
+-----------------+ +-----------------+ +-----------------+ +-----------------+
| | make_name | | | make_id | | | image_path | | | type_name |
+-----------------+ +-----------------+ +-----------------+ +-----------------+
| | type_id |
+-----------------+ +------------------+
| | caliber_id | | caliber |
+-----------------+ +------------------+
| | model_name | | PK | caliber_id |
+-----------------+ +------------------+
| | cost | | | caliber_name|
+-----------------+ +------------------+
| | description|
+-----------------+
Dies könnte zu normalisiert werden, aber das ist, was ich arbeite mit;)
mir den Code Lassen Sie zeigen:
Form
<form action="post" method="addProduct.php" enctype="multipart/form-data">
make: <input type="text" name="make" />
model: <input type="text" name="model" />
type: <input type="text" name="type" />
caliber: <input type="text" name="caliber" />
cost: <input type="text" name="cost" />
desc.: <input type="text" name="description" />
Image: <input type="file" name="image" id="image" />
<input type="submit" name="submit" value="Add Item" />
</form>
addProduct.php
Also wenn ich ein Element mit dem obigen Code hinzufügen, funktioniert alles gut, aber wenn ich ein anderes Element mit dem gleichen Herstellernamen hinzufügen, wird es duplizieren. Ich will nur, dass es erkennt, dass es bereits existiert und nicht dupliziert.
Ich habe überlegt, irgendeine Art von Prüfung zu stellen, um zu sehen, ob diese Daten bereits existieren, und wenn es das tut, dann gebe die Daten nicht ein, sondern hole die ID und gebe sie in die anderen Tabellen ein.
Eine andere Sache, die ich dachte, war, ein Dropdown für die Daten zu erstellen, die wahrscheinlich dupliziert werden und den Wert als die ID zuweisen. Aber, mein einfacher Verstand kann nicht den besten Weg herausfinden, es zu tun :(Hoffentlich macht das alles Sinn, wenn nicht, werde ich versuchen, zu erarbeiten.
Dank andrevisi, ging ich mit Ihrem Vorschlag. Ich fülle nur ausgewählte Felder für die eindeutigen Daten aus. Eine andere Sache, die ich fand, war, dass PDO Funktionalität eingebaut hat, wie Ollie für MySQL erwähnt, dass es beim Einführen von Daten doppelte Einträge bemerkt und die Einfügung nicht vervollständigt wird, während ein benutzerdefinierter Fehler geworfen wird. Vielen Dank! – Mike