Ik heb de volgende tabel:
De velden `id` en `name` moeten beide (apart) uniek zijn. Het volgende mag dus:
id - name
1 - naam_1
2 - naam_2
3 - naam_3
4 - naam_4
en dit dus niet:
id - name
1 - naam_1
1 - naam_2 (niet een unieke id)
2 - naam_2 (niet een unieke naam)
2 - naam_3 (niet een unieke id)
De volgende 2 queries zullen (waarschijnlijk) in de toekomst evenveel uitgevoerd worden.
Wel zal er vaker gejoint worden met het `id` veld, dus varianten op onderstaande query zullen wel vaak voorkomen:
Ik vroeg me af waar ik nou het beste een primare en unique key op kan zetten. Zoals jullie gezien hebben heb ik nu alleen een primaire key op het `id` veld, maar dit moet dus anders...
Gewoon een primaire key op het `id` veld en een unique key op het `name` veld? Is dat het beste in deze situatie?
MySQL:
1
2
3
4
5
6
7
| CREATE TABLE `files` ( `id` bigint(16) unsigned NOT NULL auto_increment, `name` varchar(256) NOT NULL, `data` text() unsigned NOT NULL, PRIMARY KEY (`id`) ) |
De velden `id` en `name` moeten beide (apart) uniek zijn. Het volgende mag dus:
id - name
1 - naam_1
2 - naam_2
3 - naam_3
4 - naam_4
en dit dus niet:
id - name
1 - naam_1
1 - naam_2 (niet een unieke id)
2 - naam_2 (niet een unieke naam)
2 - naam_3 (niet een unieke id)
De volgende 2 queries zullen (waarschijnlijk) in de toekomst evenveel uitgevoerd worden.
MySQL:
1
2
3
| SELECT * FROM files WHERE name = 'naam_1' |
MySQL:
1
2
3
| SELECT * FROM files WHERE id = 1 |
Wel zal er vaker gejoint worden met het `id` veld, dus varianten op onderstaande query zullen wel vaak voorkomen:
MySQL:
1
2
3
| SELECT * FROM files f INNER JOIN extra a ON f.id = a.file_id |
Ik vroeg me af waar ik nou het beste een primare en unique key op kan zetten. Zoals jullie gezien hebben heb ik nu alleen een primaire key op het `id` veld, maar dit moet dus anders...
Gewoon een primaire key op het `id` veld en een unique key op het `name` veld? Is dat het beste in deze situatie?