sql >> Databasteknik >  >> RDS >> Mysql

SQL-databas med variabelt antal kolumner

Databasmodell

Du behöver i princip en many-to-many förhållandet mellan författare och publikationer, eftersom en författare kan skriva många publikationer och en publikation kan skrivas av mer än en författare.

Detta kräver att du har 3 bord.

  • Författare – allmän information om varje författare (utan publications_id)
  • Publikation – allmän information om varje publikation (utan author_id)
  • AuthorPulication - kolumner author_id och publication_id som är referenser till tabeller Author och Publication .

På så sätt binder du inte en specifik författare till en publikation, utan du kan ha fler av dem, och samma sak tvärtom.

Ytterligare anmärkningar

Om du vill särskilja författares roll i en viss publikation kan du också lägga till någon kolumn som id_role det skulle vara en referens till en ordbokstabell som anger alla möjliga roller för en författare. På så sätt kan du skilja dig mellan ledande författare, medförfattare etc. På så sätt kan du också lagra information om personer som hanterar översättning av boken, men kanske bör du då ändra namnet på Author till något mindre specifikt.

Utseendeordning

Du kan säkerställa en korrekt ordning av dina författare genom att lägga till en kolumn i AuthorPublication som du skulle öka separat för varje Publication . På så sätt skulle du kunna bevara beställningen när du behöver den.



  1. Får MySQL-syntaxfel efter att ha skickat formuläret

  2. En introduktion till TimescaleDB

  3. Få ID för den infogade raden med C#

  4. Sortera strängkolumn som innehåller siffror i SQL?