wie Sie wissen, wie Sie eine MySQL-Datenbank zu entwerfen, wenn eine erweiterte PHP-Anwendung zu erstellen?

StackOverflow https://stackoverflow.com/questions/200257

  •  03-07-2019
  •  | 
  •  

Frage

Ich habe noch nie einen Einkaufswagen oder Forum in PHP erstellt. abgesehen von der Betrachtung und weiteren Personen Projekt oder Anzeigen von Tutorials zu analysieren, die zeigen, wie ein solches Projekt zu machen oder wie ein solches Projekt zu sein. wie würden Sie wissen, wie eine Person, die Datenbankstruktur zu entwerfen, so etwas zu schaffen? im Erraten seiner probbably durch Versuch und Irrtum ...

War es hilfreich?

Lösung

Die wichtigste Technik, die Sie über Datenbank-Design lernen heißt Database Normalisierungs .

Datenbank Normalisierung hat seine Grenzen, vor allem wenn Sie viele Geschäfte haben. An einem gewissen Punkt, den Sie gezwungen werden kann, um denormalize .

Aber es ist imho immer besser, mit einem normalisierten Datenbank-Design zu beginnen.

Andere Tipps

Sie sollten die Grundlagen des Normalisierung lesen und verstehen. für die meisten Projekte werden bis 3. Normalform Normalisierung nur in Ordnung sein. gibt es immer bestimmte Szenarien, wenn Sie mehr oder weniger Normalisierung wollen, aber dahinter die Konzepte zu verstehen, können Sie darüber nachdenken, wie Sie Ihre Datenbank in einem normalisierten Format strukturiert ist.

Hier ist ein sehr einfaches Beispiel für eine Tabelle zu normalisieren:

students
  student_id
  student_name
  student_class
  student_grade

eine ziemlich Standard-Tabelle, die verschiedene Daten, aber wir können einige Probleme sofort sehen. wir können sehen, dass ein Student die Namen auf seine ID abhängig ist jedoch ein Student in der mehr als eine Klasse beteiligt sein können, und jede Klasse wäre denkbar, eine andere Klasse haben. dann können wir denken über die Tabellen als solche:

students
  student_id
  student_name

class
  class_id
  class_name

Dies ist nicht schlecht, jetzt können wir sehen, wir verschiedene Studenten und verschiedene Klassen haben, aber wir haben nicht die Schüler Noten erfasst.

grades
  student_id
  class_id
  grade

Jetzt haben wir eine dritte Tabelle, die uns die Beziehung zwischen einem bestimmten Schüler mit dieser Klasse zugeordnet ist, eine bestimmte Klasse und eine Klasse zu verstehen, ermöglicht. von unserer ersten Anfangstabelle, wir haben jetzt drei Tabellen in einer normalisierten Datenbank (nehmen sie an, wir aus Gründen des Beispiels :) weiter keine Noten normalisieren müssen)

ein paar Dinge, die wir von diesem sehr einfachen Beispiel auflesen können:

  • unsere Daten werden alle auf einen Schlüssel von einer Art gebunden (STUDENT_ID, class_id und STUDENT_ID + class_id). diese sind eindeutige Kennungen in jeder Tabelle.
  • mit unseren Schlüsselbeziehungen, wir sind in der Lage Informationen miteinander zu beziehen (wie viele Klassen ist Student # 4096 eingeschrieben?)
  • wir unsere Tabellen sehen können, werden nicht dupliziert Daten enthalten jetzt (denken Sie über unsere erste Tabelle, wo student_class der gleiche Wert für viele Studenten sein könnte. Wenn wir den Klassennamen ändern musste, würden wir alle Datensätze aktualisieren müssen . in unserem normalisierten Format, wir können nur class_name von class_id aktualisieren)

Ich würde empfehlen, auch einen visuellen Editor für Ihr Datenbank-Schema zu erstellen. Ich habe mit vor kurzem: http://dev.mysql.com/workbench/

Wenn Sie eine Datenbank-Design zu erstellen, haben jemand mit mehr Erfahrung schauen Sie vorbei und geben Sie Feedback. Aber wissen, dass so viel Zeit, wie Sie entwerfen verbringen können, werden Sie schließlich Umsetzung zu tun haben, und erfahren Sie, etwas fehlen oder könnte einen noch besseren Job machen es anders zu tun.

Also, Design, Feedback erhalten, aber keine Angst, zu ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top