Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Baza danych SQL ze zmienną liczbą kolumn

Model bazy danych

Zasadniczo potrzebujesz many-to-many związek między autorami a publikacjami, ponieważ jeden autor może napisać wiele publikacji, a jedna publikacja może być napisana przez więcej niż jednego autora.

Wymaga to posiadania 3 stołów.

  • Autor - ogólne informacje o każdym autorze (bez identyfikatora publikacji)
  • Publikacja - ogólne informacje o każdej publikacji (bez author_id)
  • Publikacja autora — kolumny author_id i publication_id które są odniesieniami do tabel Author i Publication .

W ten sposób nie wiążesz konkretnego autora z publikacją, ale możesz mieć ich więcej i to samo na odwrót.

Dodatkowe uwagi

Jeśli chcesz rozróżnić rolę autorów w konkretnej publikacji, możesz również dodać kolumnę typu id_role byłoby to odniesienie do tabeli słownikowej zawierającej wszystkie możliwe role autora. W ten sposób możesz różnić się między wiodącymi autorami, współautorami itp. W ten sposób możesz również przechowywać informacje o osobach zajmujących się tłumaczeniem książki, ale być może powinieneś wtedy zmienić nazewnictwo Author do czegoś mniej konkretnego.

Kolejność pojawiania się

Możesz zapewnić odpowiednią kolejność swoich autorów, dodając kolumnę w AuthorPublication które należy zwiększyć oddzielnie dla każdej Publication . W ten sposób będziesz w stanie zachować kolejność zgodnie z potrzebami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tabela aktualizuje puste miejsca, gdy użytkownik nie wpisuje niczego w polu tekstowym

  2. Nie można wykryć wartości null z JSON_EXTRACT

  3. 2 najlepsze rekordy MySQL na grupę

  4. ssh najpierw z mysqldb w Pythonie

  5. MySQL Pobiera czas starego wstawienia rekordu?