Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Datenbank mit variabler Spaltenanzahl

Datenbankmodell

Sie benötigen im Grunde einen many-to-many Beziehung zwischen Autoren und Veröffentlichungen, da ein Autor viele Veröffentlichungen schreiben kann und eine Veröffentlichung von mehr als einem Autor geschrieben werden kann.

Dazu benötigen Sie 3 Tabellen.

  • Autor - allgemeine Informationen über jeden Autor (ohne Veröffentlichungs-ID)
  • Publikation - allgemeine Informationen zu jeder Publikation (ohne author_id)
  • AuthorPublication - Spalten author_id und publication_id das sind Verweise auf die Tabellen Author und Publication .

Auf diese Weise binden Sie keinen bestimmten Autor an eine Veröffentlichung, sondern können mehrere haben und umgekehrt.

Zusätzliche Hinweise

Wenn Sie die Rolle des Autors in einer bestimmten Veröffentlichung unterscheiden möchten, können Sie auch eine Spalte wie id_role hinzufügen das wäre ein Verweis auf eine Wörterbuchtabelle, die alle möglichen Rollen für einen Autor angibt. Auf diese Weise könnten Sie zwischen Hauptautoren, Co-Autoren usw. unterscheiden. Auf diese Weise könnten Sie auch Informationen über Personen hinterlegen, die sich mit der Übersetzung des Buchs befassen, aber vielleicht sollten Sie dann die Benennung von Author ändern zu etwas weniger Spezifischem.

Reihenfolge des Erscheinens

Sie können eine korrekte Reihenfolge Ihrer Autoren sicherstellen, indem Sie eine Spalte in AuthorPublication hinzufügen die Sie für jede Publication separat erhöhen würden . Auf diese Weise können Sie die Reihenfolge so beibehalten, wie Sie sie benötigen.