Avatar billede Xelot Nybegynder
22. januar 2012 - 19:36 Der er 10 kommentarer og
1 løsning

Forslag til database

Hej eksperter,

Jeg er ved at stykke noget kunde database sammen via PHP og MySQL.

Nu er jeg stødt ind i et problem, som jeg håber i kan hjælpe med.

Databasen indeholder følgende:

id
fornavn
efternavn
adresse
postnr
by
fastnet
mobil
email
sidstebesog
notat
kundetype

kollonnen med 'sidstebesog' er en som jeg gerne vil opdatere løbende, og gerne have en historik over. Altså vil jeg gerne oprette flere dato'er i samme række, og i samme felt.
Kan det lade sig gøre ?
Jeg vil gerne undgå at oprette endnu en tabel som har denne data i sig, men det kan jeg jo blive nødt til hvis ikke der findes en anden løsning.
Avatar billede claes57 Ekspert
22. januar 2012 - 19:57 #1
du skal have en tabel mere med id og (sidste)besog som de eneste felter - så kan du via id i din tabel finde alle besøg den pågældende har lavet i en hvilken som helst periode.
Avatar billede Xelot Nybegynder
22. januar 2012 - 20:05 #2
Ja, men kan det ikke gøres uden at oprette endnu en tabel ?
Avatar billede rix Praktikant
22. januar 2012 - 20:13 #3
Joo men det ville være svært og kræve meget kodning og det ikke værd når der findes nemmer måde.
med #1 forslag ville du gøre det med nemmere for dig selv.
både at gemme og vise.
22. januar 2012 - 20:17 #4
Naturligvis kan det lade sig gøre i en enkelt tabel.  MYSQL har en datatype SET, se for eksempel http://dev.mysql.com/doc/refman/5.0/en/set.html .  Men det vil være langt simplere at normalisere datastrukturen, således at hvor der er behov for en række værdier placeres de i en særskilt tabel, ikke som en liste eller et set i et enkelt felt.

En tilføjelse til #1:  I besøgstabellen skal du nok have felterne id, kunde_id, og besøgstidspunkt.
Avatar billede Xelot Nybegynder
23. januar 2012 - 18:45 #5
Grunden til at jeg ikke så gerne vil have flere tabeller er at jeg skal have flere forskellige brugere, med hver sin unikke database. Men det kan arrangeres ved at kalde de 2 tabeller ved brugernavn_info og brugernavn_lastvisit.

Men min bekymring er bare om hastigheden bliver sænket ved at den skal søge i 500 tabeller eller lignende.
Avatar billede claes57 Ekspert
23. januar 2012 - 19:04 #6
det er også et spørgsmål om overlevelse og design.
hvis du nu har en tabel med brugernavn (+ autoid, jf #4), og når en bruger logger på, så har du denne autoid, som kører ind i to samlede tabeller for alle
1)
id (autoid på denne tabel)
brugerid (fra hovedtabellen)
fornavn
efternavn
adresse
postnr
by
fastnet
mobil
email
notat
kundetype

2)
id (autoid på denne tabel)
brugerid (fra hovedtabellen)
sidstebesog (dato/tid)

og hovedtabellen med
id (autoid på denne tabel = brugerid på de to andre tabeller)
brugernavn (login)
adgangskode (login)

så ender du på tre tabeller, og alle er glade - hurtigt og let at vedligeholde.
Databaser er reelt ligeglade om der er 100 eller 10000 poster i en tabel - de har index-tabeller til at styre sig.
Avatar billede Xelot Nybegynder
23. januar 2012 - 22:14 #7
Ok, jeg tror jeg har hvad jeg skal bruge. Claes57 giver du et svar ?!
Avatar billede claes57 Ekspert
24. januar 2012 - 09:23 #8
ok
Avatar billede DjJohn Nybegynder
24. januar 2012 - 12:40 #10
Vil i ikke svare på et spørgeskema som jeg skal bruge til mit projekt. Tak :-))
http://www.surveymonkey.com/s/BMBJCNG
25. februar 2012 - 21:18 #11
znup.dk, hvad så, lukker du dette spørgsmål?  Du behøver bare at acceptere det svar (ikke fra mig) du bad om.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester