Først av alt må vi nå planlegge hva databasen vår skal bestå av. Noen felter
er 'must',
andre mer et ekstra atributt som er 'kjekt å ha'. I guiden vil vi lage et
eksempel som for
de fleste vil holde, men andre kan finne de for få. Vi vil uansett gå igjennom
alle typer
felt man kan ha, og det skal derfor være forholdsvis enkelt å utvide systemet
til å få
nøyaktig det som du er ute etter.
Hvert element i en database må ha en 'nøkkel', altså en verdi som skiller denne
ut fra alle
de andre elementene i databasen. Et eksempel på en slik nøkkel kan være
personnummer i en
database over ansatte i et firma. Denne nøkkelen vil vi i nyhetssystemet vårt
kalle 'id'.
Denne nøkkelen skal ha en del som gir den egenskaper som er fine å ha med oss.
For det
første skal nøkkelen vår være en 'int', altså et heltall. En 'int' er et tall
som i de
fleste programmeringsspråk kan ligge mellom '-2.1 milliarder' og '+2.1
milliarder', noe som
skulle holde i massevis til vårt system. Det neste feltet vi skal ha i vår
database, er et
felt som skal holde rede på hvilken dato vi siste redigerte/opprettet nyheten i
databasen.
Dette vil være av felttypen 'timestamp', altså tidsstempel, med lengde 8 (eks:
20020506) og
hete 'dato'. Ikke alle nyheter er ønskelig å publisere med en gang, og vi legger
derfor til
et ekstra 'timestamp' - felt som vi kaller for 'publ'. Dette feltet skal vi
bruke til å
holde rede på publiserte og upubliserte artikler i systemet vårt. Akkurat
oppdateringen av
disse feltetene, skal vi ta for oss i php-delen av denne guiden, så det er ikke
noe som du
trenger å bekymre deg for... Ennå...

Etter at vi har bestemt oss for disse to feltene, er det neste vi trenger et
forfatterfelt.
Dette feltet kan selvfølgelig løses på mange måter, men vi bestemmer for at i
akkurat denne
databasen, skal feltet skrives inn for hver nyhet som lanseres. Feltet kaller vi
for
'forfatter' og det blir derfor et såkalt 'varchar'. Feltlengden bestemmer vi oss
for å sette
til 50. Dette skulle være nok til de aller fleste navn. Varchar-feltene har dog
mulighet til
å lagre opp til 255 tegn, så dette blir etter din preferanse. Hver forfatter må
jo også ha
en email-adresse, så vi tenker oss et felt til som vi kaller for 'epost'.
Lengden på dette
er ofte lengre enn personers navn, så vi dobler feltlengden, og setter denne til
100.
Vi oppsummerer litt, og vi finner ut at vi nå har 5 felter, 'id', 'dato', 'publ',
'forfatter' og 'epost'. Vi er altså godt på vei til å få en bra opptegning av
databasen vår.
Har vi glemt noe? Ja, selvsagt, vi må jo finne plass til nyheten også. Først må
vi ha en
tittel. En tittel bruker ikke å være så lang, så vi bestemmer oss for enda et 'varchar'
-
felt med feltlengde 255. Dette kaller vi for 'tittel'. Selve nyheten, har jeg
valgt å dele
inn i to deler; ingress og brødtekst. Disse vil inneholde nyheten vår. Siden
disse skal være
en god del større enn våre forfatterfelt, virker det åpenbart at de ikke kan
være av
felttypen 'varchar'. Dette er korrekt og vi bestemmer oss for at de to nye
feltene skal hete
'ingress' og 'tekst'. Disse skal være av felttypen 'text'.
Nå ville nok mange guider og oppskrifter gitt seg, men ikke oss, vi fortsetter
likeså godt
med noen godbit-felt på slutten. En ekstern link til sider som f.eks. VG eller
OcShoot i
enkelte nyheter, er ofte ønskelig. Derfor trenger vi nok et varchar - felt som
vi kaller for
'ekst_link', lengde 255.
De neste to feltene er mest for spesielt interesserte, men vi tar de med
likevel. Vi skal da
ha det beste CMS-systemet som kan fås, skal vi ikke?

Selve feltene er forholdsvis enkle. Vi kaller dem for 'bilde' og 'fil'. Begge
felttypen
'varchar' og begge lengde på 50. Lengden på bilde er vel lang, men grei, vi skal
der
etterhvert bruke et system som gjør at ingen bilder får samme navn. På fil, må
man kanskje
velge feltlengden med litt mer omhu, siden dette begrenser lengden på
filnavnene.
Da skulle selve designet av denne enkle databasen (litt overkill å kalle dette
en database
siden den kun inneholder en tabell, men å skyte spurv med kanoner har aldri
skadet noen..
Forutenom spurven da..
) ferdig og vi sitter igjen med følgende felter:
Feltnavn |
Felttype |
Feltlengde |
Atributt |
id |
int |
|
unsigned (betyr at feltet ikke kan være negativt), auto_increment (legg
automatisk på en for hvert innlegg), primary key (jepp, primærnøkkel), unik
(ingen innlegg i databasen kan ha samme id) |
dato |
timestamp |
8 |
|
publ |
timestamp |
8 |
|
tittel |
varchar |
50 |
|
forfatter |
varchar |
50 |
|
epost |
varchar |
100 |
|
ingress |
text |
|
|
tekst |
text |
|
|
ekslink |
varchar |
255 |
|
bilde |
varchar |
50 |
|
fil |
varchar |
50 |
|
|