sql >> Databáze >  >> RDS >> Mysql

SQL databáze s proměnným počtem sloupců

Databázový model

V podstatě potřebujete many-to-many vztah mezi autory a publikacemi, protože jeden autor může napsat mnoho publikací a jednu publikaci může napsat více než jeden autor.

To vyžaduje, abyste měli 3 stoly.

  • Autor – obecné informace o každém autorovi (bez id_publikace)
  • Publikace – obecné informace o každé publikaci (bez id autora)
  • AuthorPublication – sloupce author_id a publication_id které jsou odkazy na tabulky Author a Publication .

Tímto způsobem nezavazujete konkrétního autora k publikaci, ale můžete jich mít více a to samé naopak.

Další poznámky

Pokud byste chtěli rozlišit roli autorů v konkrétní publikaci, můžete také přidat nějaký sloupec jako id_role to by byl odkaz na tabulku slovníku uvádějící všechny možné role autora. Tímto způsobem byste se mohli lišit mezi předními autory, spoluautory atd. Tímto způsobem byste také mohli ukládat informace o lidech, kteří se zabývají překladem knihy, ale možná byste pak měli změnit jméno Author na něco méně konkrétního.

Pořadí zobrazení

Správné řazení svých autorů můžete zajistit přidáním sloupce do AuthorPublication který byste zvýšili samostatně pro každou Publication . Tímto způsobem byste byli schopni zachovat pořadí, jak potřebujete.



  1. Django manage.py házení syncdb Žádný modul s názvem MySQLdb

  2. Rozdíl mezi uživatelem a přihlášením na SQL Server

  3. Jak změnit národní prostředí při formátování čísel v PostgreSQL

  4. Problémy s createdb v postgresu