sql >> Database >  >> RDS >> Mysql

Hoe moet ik mijn MYSQL-tafel(s) ontwerpen?

Normalisatie is je vriend.

U wilt overstappen op een relationeel ontwerp met twee tafels.

CREATE TABLE projects (
   project_id int not null primary key auto_increment,
   project_name varchar(128),
   -- ...
);

CREATE TABLE pages (
   page_id int not null primary key auto_increment,
   project_id int not null, 
   pagetext text,
   image varchar(128), 
   -- ...
);

Nu kan elk project een willekeurig aantal pagina's hebben.

Als de client dan terugkomt en zegt "Elke pagina kan 0-N afbeeldingen hebben", zou je een derde tabel willen hebben, die een refererende sleutel bevat page_id (net zoals de pagina'stabel een project_id heeft buitenlandse sleutel)




  1. Een procedure uitvoeren met de DBMS_SCHEDULER.CREATE_JOB-procedure

  2. efficiënte manier om paging te implementeren

  3. Mysql-subqueryvolgorde

  4. pymssql.OperationalError:DB-Lib-foutbericht 20009, ernst 9