Bei der Arbeit erstellen wir ein Formular, um Immobilienmaklern zu ermöglichen, ihre neuen Entwicklungen einzureichen. Eine vereinfachte Version unseres Formulars lautet wie folgt:Zwei Möglichkeiten zum Speichern der gleichen Daten
Bedrooms: [Enter a number]
Quantity: [Enter a number]
Add Another | Save
Wir ermöglichen Agenten, mehrere Zeilen hinzuzufügen. Aber im Moment haben wir absolut keine Validierung für Duplikate, die meiner Meinung nach unserer Datenbank in zwei Möglichkeiten zu speichern identische Daten ermöglicht:
| development_id | bedrooms | quantity |
|----------------|----------|----------|
| 1 | 3 | 1 |
| 1 | 3 | 1 |
| 1 | 3 | 3 |
eindeutig eine Reihe sowohl ein Einheit darstellen könnte oder ein Gruppe von Einheiten.
Ich argumentiere, dass wir die Entwicklungen entweder eine Möglichkeit der anderen speichern sollten, aber sicherlich nicht beides. Leider sind die Back-End-Entwickler — Ich bin vor allem Front-End — argumentieren, dass es keine große Sache ist, und das scheint mir absurd.
Für ein einfaches Beispiel, indem er sie als den oben genannten, eine COUNT
speichern, wie viele Entwicklungen zum Verkauf zu erhalten, die 3 Schlafzimmer haben erfordert eine SELECT COUNT(*)
und Berücksichtigung des quantity
Feld.
Als Front-End-Entwickler weitgehend zwischen wodurch sie als eine Liste von einzelnen Einheiten Präsentationslogik, zu sein scheint, oder die Gruppierung sie zusammen eine Front-End/API Aufgabe sein sollte, weil die Umwandlung und die Logik Geschäft sein sollte auf die eine oder andere Weise. Letztendlich scheint unsere Tabelle überhaupt nicht normalisiert zu sein.
In meiner bescheidenen Meinung sollte es einen eindeutigen Index auf development_id, bedrooms
geben.
Bin ich richtig in meinem Argument? Oder schrecklich falsch?
Edit:
davon in Klärung aller zur Zeit möglich sind, die alle die gleiche Tatsache darstellen, und mein Argument ist, es sollte nur ein Weg:
| development_id | bedrooms | quantity |
|----------------|----------|----------|
| 1 | 3 | 1 |
| 1 | 3 | 1 |
| 1 | 3 | 1 |
Same wie:
| development_id | bedrooms | quantity |
|----------------|----------|----------|
| 1 | 3 | 1 |
| 1 | 3 | 2 |
Gleiche wie:
Sie haben Recht, es sollte nur einen Weg geben, um jede Tatsache in einer Datenbank aufzuzeichnen und doppelte Zeilen sollten nicht erlaubt sein. Ich bin mir allerdings nicht sicher über Ihren eindeutigen Index. Was ist Entwicklungs-ID für und was bedeutet es, wenn Sie mehrere Zeilen mit demselben Wert dafür haben? – reaanb
Nun, wir haben auch eine primäre 'id', also eher wie:' id (pk) | Entwicklungs-ID (fk) | Schlafzimmer | Phase | floor_area | Preis | Quantität ", aber die einfache Tatsache bleibt, dass es keine Duplikate geben sollte - mit einer einzigartigen Beschränkung auf" Entwicklungs-ID, Schlafzimmer, Phase, Stockwerk, Preis ". – Wildhoney
"Eine Zeile könnte eindeutig sowohl eine Einheit als auch eine Gruppe von Einheiten darstellen." Nicht klar für mich, ich verstehe es nicht. Noch die "zwei Wege". – philipxy