Ik ben nu een paar dagen met MySQL 4.0.18 aan de gang, en ik heb het volgende opzetje gemaakt voor een van mijn tabellen:
Alleen nu zit ik te twijfelen welk type ik moet kiezen voor mijn primary key (CmpID).
Het is een integer van 6 getallen, niet meer en niet minder.
Nu weet ik dat als ik hem als integer declareer, het sneller werkt... ik weet alleen niet hoe ik er voor kan zorgen dat het getal ook altijd 6 cijfers bevat.
Moet ik het dan per se als CHAR(6) declareren?
Verder neem ik aan dat het een algemene regel is dat je de velden moet declareren als types waar ze voor gebruikt worden, zoals bij een boolean veld BOOL in plaats van CHAR(1). Zijn hier ook tegen argumenten voor te bedenken?
Laatste subvraag: ik zie vaker in voorbeelden dat er gebruik gemaakt wordt van een AutoNumber als primary key. Wat is hier precies het voordeel van?
tnx guys!
MySQL:
1
2
3
4
5
| CREATE TABLE Test( CmpId MEDIUMINT UNSIGNED ZEROFILL AUTO_INCREMENT PRIMARY KEY, Sequence CHAR (3) NOT NULL, StartDate DATE NOT NULL, BlockedYn BOOL NOT NULL); |
Alleen nu zit ik te twijfelen welk type ik moet kiezen voor mijn primary key (CmpID).
Het is een integer van 6 getallen, niet meer en niet minder.
Nu weet ik dat als ik hem als integer declareer, het sneller werkt... ik weet alleen niet hoe ik er voor kan zorgen dat het getal ook altijd 6 cijfers bevat.
Moet ik het dan per se als CHAR(6) declareren?
Verder neem ik aan dat het een algemene regel is dat je de velden moet declareren als types waar ze voor gebruikt worden, zoals bij een boolean veld BOOL in plaats van CHAR(1). Zijn hier ook tegen argumenten voor te bedenken?
Laatste subvraag: ik zie vaker in voorbeelden dat er gebruik gemaakt wordt van een AutoNumber als primary key. Wat is hier precies het voordeel van?
tnx guys!