sql >> Databasteknik >  >> RDS >> Mysql

Hur ska jag designa mina MYSQL-tabeller?

Normalisering är din vän.

Du vill flytta till en relationell design med två bord.

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 varje projekt ha valfritt antal sidor.

Om klienten sedan kommer tillbaka och säger "Varje sida kan ha 0-N bilder", vill du ha en tredje tabell, som innehåller en främmande nyckel page_id (precis som att sidtabellen har ett project_id främmande nyckel)




  1. Oracle:hur får man procent av totalt genom en fråga?

  2. När autovacuum inte dammsuger

  3. Hur gör man en LIKE-sökning med krypterad data?

  4. hur hämtar man data från tre eller fler tabeller?