[database] IDs

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Ozzie PHP

Ozzie PHP

10/05/2013 19:22:39
Quote Anchor link
@Ger, oke. Als we ons even beperken tot de teksten dan zou de tabel er dus zoiets uitzien:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
id    key      tekst
1     welkom   Welkom op mijn site.

Jij zou dan de ID dus als primary key instellen en auto_increment. Maar als je nu een tekst wil hebben dan moet je dus het veld key in de WHERE stoppen: ...WHERE key = 'welkom'. Is het dan een goed idee om op die key een index te zetten?
 
PHP hulp

PHP hulp

12/05/2024 17:32:18
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/05/2013 21:22:07
Quote Anchor link
Ja, maar dan zal jij vragen 'Waarom dan niet gelijk een primary key van maken?'

Ik zal dat proberen uit te leggen, en ik gebruik even als voorbeeld jouw productcode:
Stel je hebt een tabel voor de producten, dan zal je die producten (als het goed is) ook willen verkopen.
Dus dan heb je ook een tabel orders_producten, waarin die productcode voorkomt.
In die tabel heeft de productcode op zijn minst een index anders lopen (bij grotere tabellen) je queries voor geen meter.
Getallen zijn gewoon makkelijker met elkaar te vergelijken dan strings.
Daarnaast wordt ook nog elke keer (tenzij je met transacties werkt) als je iets insert de index opnieuw opgebouwd.
 
Ozzie PHP

Ozzie PHP

10/05/2013 21:58:20
Quote Anchor link
Ger, begrijp ik je dan correct dat je een ID nodig hebt om de ene tabel aan de andere te kunnen koppelen? Of is dat te kort door de bocht?

En stel dat je 100% (voor zover dat op voorhand kan) zeker zou weten dat je die teksten nooit ergens aan wilt koppelen, zou het in dat geval dan wel zonder ID kunnen? Of raad je dan nog steeds een numerieke ID aan, en zo ja... waar wordt die numerieke key dan eigenlijk voor gebruikt? (in het geval van de teksten bedoel ik dan)

Ik probeer vooral even te begrijpen WAAROM die numerieke ID van belang is.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

10/05/2013 23:47:51
Quote Anchor link
Een primary key is gewoon het is het eerste vereiste.
Hoe je die samenstelt is een tweede, de enigste voorwaarde is dat ie uniek is. Je kan ook 5 kolommen een samengestelde primary key maken.

Op die primary key kan je dus andere tabellen koppelen, en of je dan op één of 5 kolommen wilt koppelen, het verschil lijkt me wel duidelijk.
 
Ozzie PHP

Ozzie PHP

11/05/2013 01:15:42
Quote Anchor link
Als we dan alles samenvatten in "goed gebruik", dan kunnen we dus stellen dat iedere tabel een primary key moet hebben die numeriek is. Als er geen uniek numeriek veld aanwezig is dan voegen we een auto increment ID toe als primary key.

Is dat een goede regel om aan vast te houden?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

11/05/2013 09:16:53
Quote Anchor link
Ja, alleen heb je een uitzondering bij koppeltabellen.
De orders_products tabel in mijn eerdere voorbeeld heeft geen uniek numeriek veld, maar de combinatie van order_id en product_id is wel uniek dus maak je daar de primary key van.
 
Ozzie PHP

Ozzie PHP

11/05/2013 15:39:02
Quote Anchor link
Oké Ger, dat is nieuw voor mij... dus een koppeltabel zou dan zo eruitzien?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
order   productnummer
15        235344

Werkt dat altijd op die manier bij een koppeltabel?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

12/05/2013 18:24:49
Quote Anchor link
Ja, met eventueel een paar andere kolommen (bijv aantal).
 
Ozzie PHP

Ozzie PHP

12/05/2013 20:54:43
Quote Anchor link
Ah ja, oké. Duidelijk. Thanks Ger!
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.