Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL база данни с променлив брой колони

Модел на база данни

По принцип имате нужда от many-to-many връзка между автори и публикации, тъй като един автор може да напише много публикации, а една публикация може да бъде написана от повече от един автор.

Това изисква да имате 3 маси.

  • Автор – обща информация за всеки автор (без publications_id)
  • Публикация – обща информация за всяка публикация (без author_id)
  • AuthorPublication – колони author_id и publication_id които са препратки към таблици Author и Publication .

По този начин не обвързвате конкретен автор с публикация, но можете да имате повече от тях и същото нещо обратното.

Допълнителни бележки

Ако искате да разграничите ролята на авторите в конкретна публикация, можете също да добавите колона като id_role това би било препратка към таблица на речника, посочваща всички възможни роли за автор. По този начин бихте могли да се различавате между водещи автори, съавтори и т.н. По този начин можете също да съхранявате информация за хората, които се занимават с превода на книгата, но може би след това трябва да промените името на Author към нещо по-малко конкретно.

Ред на поява

Можете да осигурите правилно подреждане на вашите автори, като добавите колона в AuthorPublication които бихте увеличили отделно за всяка Publication . По този начин ще можете да запазите поръчката, както ви е необходима.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql:изберете всички елементи от таблица А, ако не съществуват в таблица Б

  2. Как да намерите всички идентификатори на деца рекурсивно?

  3. Колекцията от картографирани изявления не съдържа стойност за mybatis mapper

  4. Преместете MySQL база данни на нов сървър

  5. Заменете нулевите стойности по подразбиране, върнати от лявото външно свързване