bygge et forum

Tags:    php html

Jeg er ved at overveje et design for et bruger forum til siden: http://www.pixie3d.com

Jeg har lavet noget fleksibel php kode til at lave kommentar bokse op paa siden, og jeg kunne sagtens udvide koden til at fungere som et forum.
Men jeg bed at langt de fleste forums benytter mysql databaser, mit kode vil opretter mapper og filer istedet.
Kan I spotte og fortaelle mig ulempen og fordelen ved at bruge mysql database frem for fil struktur, Eller goer det i bund og grund ligemeget?
Uden at kende til mysql kunne jeg forestille mig at em mysql vil vaere letters at opdatere og vedligeholde? Men rent performansmaessigt, vil der vaere nogen forskel?



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 11 karma
Sorter efter stemmer Sorter efter dato
Hvis ud bruger en fil til, at læse og skrive i. Kan du komme ud i problemer hvis 2 bruger vil opdatere på samme tid også kaldet dataintegritet. Sådan noget håndtere databaser nemmere.

Databaser håndtere også index (sortering / omsortering) af data nemmere.

Databaser kan lave queries. Større eller mindre dele af dataen kan hives ud uden, at skulle gennemlæse alle filer.

Databaser kan skalleres og optimeres mere end filer.

Jah, der er masser af fordele ved databaser. Du skal dog være opmærksom på, at bare fordi man siger databaser siger man ikke nødvendigtvis også mysql. Der findes MANGE andre databaseløsninger både MySQL og NonSQL eller ja, noget helt tredje.



Det er uholdbart at lagre den type informationer i et filsystem.

Nogle af årsagerne kan bl.a. læses her:
http://www.druva.com/blog/file-systems-vs-databases/

Men jo i bund og grund er en database også lagret i filer. Forskellen er dog at databaser er bygget til at håndtere, strukturere og indeksere mange informationer. Det er de alm. brugte filsystemer ikke. - og du vil opleve en mærkbar hastighedsforskel i forhold til filsystem og database.



Indlæg senest redigeret d. 28.09.2013 08:21 af Bruger #10216
Hej Dan, mange tak for for dit input.
Jeg vil nok ikke stoede ind i problemet med at skrive/laese samme fil fordi en mappe repraesentere en traad. Hver indlaeg i en traad vil derfor blive gemt i sin egen fil. Saa paa den maade burde det vaere sikker nok.

Men du har sikkert ret i at der vil vaere flere skalering og optimerings fordele ved en database kunne godt taenke mig at faa nogle eksempler.

En lille forklaring paa, hvordan fil/mappe strukturen for en traad er sat sammen i systemet:

Mappe: Mappens navn indeholder navnet paa traaden, Navn paa brugeren der skabte traaden og ekstra parametre saa som: er traaden lukket osv. (kan laese navn/dato uden at indlase mappens indhold)

Fil: Filens navn har et numerisk nummer og derefter navn paa brugeren der skabte indlaegget, plus ekstra soege parametre. (kan laese navn paa bruger samt dato uden at aabne filens indhold, plus simple ekstra soege parametre)

Er det ikke i bund og grund det samme struktur som en database ville indeholde, med samme soege fordele?

At man kan laese navn paa traaden samt navn paa dens skaber samt dato og ekstra parametre saa som - er traaden lukket osv. Uden at indlaese traadens indhold?
At man kan laese antal af indlaeg, hvem der skrev dem og tidspunkt da de forskellige indlaeg blev skabt, uden at indlaese indholdet?



Fold kodeboks ind/udPHP kode 


Kan give dig en liste over 50 nyeste tråde (sorteret efter id FALDENDE) ved brug af PHP's mysqli API

Fold kodeboks ind/udPHP kode 


Vil tilføje et svar til tråden, igen ved brug af PHP's mysqli API (her er data sanitized, så SQL-injection er ikke en mulighed

Mit bedste svar på hvad fordele der er, er det utroligt simple kode der skal skrives til - det fungerer på utroligt få linjer, og er generelt lige til at gå til.

Både dan og Michael Larsen kommer med nogle rimelig gode aspekter til hvorfor databaser er bedst til denne slags operationer. Jeg går stærkt ud fra at du også selv kan se hvor let det rent faktisk er at gå til, med sådan et veldesignet API - jeg kan klart anbefale databaser i hvert tilfælde.



Mange tak for jeres inputs :)



t