mboost-dp1

Lagermetode til debatforum?


Gå til bund
Gravatar #1 - KC
13. feb. 2010 06:55
Jeg skal lave et system som i funktion minder om et debat-forum.

Lagres dette bedst på filsystemet eller i en DB? - Har også overvejet et array, men så er man på røven, hvis serveren crasher.
Gravatar #2 - myplacedk
13. feb. 2010 08:44
En helt almindelig relationsdatabase er min anbefaling. Der får du så meget foræret.
Gravatar #3 - fidomuh
13. feb. 2010 10:07
#1

I second what #2 said.

Relationsdatabaser er *DESIGNET* efter dette formaal.
Gravatar #4 - KC
13. feb. 2010 11:02
will do, tak!

Min eneste tvivl var, at der skulle være forholdsvis meget data i den kolonne der holdt selve beskeden, så jeg tænkte at der ville blive brugt meget tid på at indexere eller forberede søgninger på dette felt, selvom jeg ikke ville bruge det.
Gravatar #5 - myplacedk
13. feb. 2010 11:18
Der bliver kun indexeret, hvis du beder om det. Men det kan der skam også være fordel i, fx. til fritekst-søgning.

Hvis ikke der bliver tilføjet mange i sekundet, er den slags slet ikke noget problem, performance-mæssigt.
(Og jeg tænker ikke på når du indsætter data her i starten, men i den daglige drift.)
Gravatar #6 - arne_v
13. feb. 2010 14:16
#4

Har du meget skriveglade brugere?

De fleste databaser har en CLOB type som kan klare ihvertfald 1 GB. Det svarer til ca. 500000 sider A4 sider.

:-)

Gravatar #7 - arne_v
13. feb. 2010 14:17
#4 & 5

Enten vil man undlade at indeksere tekst felter eller så vil man lave et full text index (hvilket ikke er det samme som et normalt index).
Gravatar #8 - arne_v
13. feb. 2010 14:19
#fil vs db

Som hovedregel bør man bruge db lige så snart man har brug for at opdatere data online.

Gravatar #9 - arne_v
13. feb. 2010 14:22
#relationsdatabaser

Et forum med en flad struktur 1 tråd + M indlæg passer perfekt til en relations database.

Et forum med en træ struktur hvor indlæg er hægtet op på andre indlæg passer ikke helt så godt til en relations database. Men med lidt arbejde evt. brug af ikke standard SQL kan man dog få det til at virke.
Gravatar #10 - Windcape
13. feb. 2010 15:12
Det er også typisk for forums at have indholdsbegrænsning per post.

(Hence #reserved for guides o. lign.)

Gravatar #11 - KC
14. feb. 2010 13:04
arne_v (6) skrev:
#4

Har du meget skriveglade brugere?

De fleste databaser har en CLOB type som kan klare ihvertfald 1 GB. Det svarer til ca. 500000 sider A4 sider.

:-)


Jeg har ikke praktisk erfaring med DB og har været i tvivl om hvor meget der er "meget" i en DB :) - Det var godt at få lidt at relatere til.

Ud fra hvad i skriver her er der altså en fordel i at holde data i så få tabeller som muligt frem for at have mange tabeller som krydsrefererer til hinanden?
Gravatar #12 - Mamad (moveax1ret)
14. feb. 2010 13:09
Det er fuldstændigt ligemeget for dit forum- det konkluderer jeg fordi at bare det du kunne finde på at spørge om det implicerer at du ikke kører din egen server der er tungt belastet af mange brugere.

Den slags detaljer kan du vente med at tænke på til du har fundet ud af at bruge en database.

Indtil videre skal du bare være glad for at der er automatiske locks på når du skriver/læser,dataen resistent og du kan benytte SQL.
Gravatar #13 - arne_v
14. feb. 2010 13:30
KC (11) skrev:
Ud fra hvad i skriver her er der altså en fordel i at holde data i så få tabeller som muligt frem for at have mange tabeller som krydsrefererer til hinanden?


Du bør vælge den tabelstruktur som:
- passer til din problem stilling
- passer til en relations database


Det giver sandsynligvis et antal tabeller som skal joines sammen i diverse queries.
Gravatar #14 - KC
14. feb. 2010 14:40
moveax1ret (12) skrev:
Det er fuldstændigt ligemeget for dit forum- det konkluderer jeg fordi at bare det du kunne finde på at spørge om det implicerer at du ikke kører din egen server der er tungt belastet af mange brugere.
...


Kan du forklare dette lidt nærmere?
Gravatar #15 - fidomuh
14. feb. 2010 19:29
#14

Umiddelbart vil jeg tro han mener at du ikke vil maerke nogen forskel i performance, til dit brug.

Det handler mere om hvad du helst vil arbejde med :)
Gravatar #16 - KC
14. feb. 2010 21:09
fidomuh (15) skrev:
#14

Umiddelbart vil jeg tro han mener at du ikke vil maerke nogen forskel i performance, til dit brug.

Det handler mere om hvad du helst vil arbejde med :)


Tak, med den vinkel gav sætningen (uden kommaer) mere mening. Jeg vil helst arbejde med det som også fungerer, når der kommer mere pres på programmet/siden.
Gravatar #17 - myplacedk
14. feb. 2010 23:04
KC (16) skrev:
Jeg vil helst arbejde med det som også fungerer, når der kommer mere pres på programmet/siden.

Jeg tror du skal tænke meget mere på detaljerne. At joine tabeller er meget meget billigt, ikke noget du skal tænke over i dit system. (Og det kan jeg sige med meeeget stor sandsynlighed, uden at vide mere end du siger i #1.)

Men en lille bug kan betyder at du overfører ALLE indlæg, hvor du kun skal bruge en enkelt tråd, og efterfølgende smider dem væk du ikke skal bruge.
Jeg har set performance-forbedringer i "hundreder af gange"-klassen blot ved at tilføje et index, hvilket kan gøres med et par klik i fx. phpMyAdmin.

Så design et system som er nemt at arbejde med. Skriv din kode på en måde så den er overskuelig og nem at forstå, det reducerer chancen for at det gør noget andet end du egentlig mener.

Hvis du gør det, er det formentlig intet problem at vente med at tænke på performance, til det faktisk er et problem.
Gravatar #18 - arne_v
15. feb. 2010 00:10
KC (16) skrev:
Jeg vil helst arbejde med det som også fungerer, når der kommer mere pres på programmet/siden.


Lav det pænt.

Når du har >10 års erfaring, så kan du begynde at argumentere for diverse mindre pæne ting som forbedrer performance.
Gravatar #19 - fidomuh
15. feb. 2010 08:44
#18

Plus, performance? Medmindre du har et motherfucker load paa din side, saa er det 100% ligegyldigt.

I det her omfang vil det naeppe blive et problem, hvis bare man holder sig en lille smule til normalisering :D
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login