Gå til innhold

Forum - filer blanda med MySQL


Anbefalte innlegg

Hei,

 

Jeg driver og lager et forum på hobby. Jeg har lyst at dette forumet skal tåle svært mange brukere og poster uten at det

skal bli noe tregere av den grunn. Da tenkte jeg på å blande MySQL og filer. Jeg har laga meg en klasse i PHP som gjør

om matriser til PHP kode, slik at jeg kan bare inkludere dem og begynne å bruke det med en gang.

 

Så når en bruker registrerer seg så lager jeg mappen: ./data/user/u/s/e/username/userdata.php. (/u/s/e/ <-- de første

tegnene i brukernavnet ;).) I fila er dataen lagret slik:

 

PHP
<?php $user['username'] = array(

'signature' => 'signature til bruker'

'nickname' => 'kallenavn!'

'numposts' => 5479

); ?>

 

Jeg skiller mellom brukernavn og kallenavn. Kallenavn vises på forumet, brukernavn er for å logge seg inn.

Så når jeg da henter postene til en tråd så skjer følgende:

 

PHP
<?php 

// Definerer en array for å se om vi har inkludert før, 

// slik at vi ikke inkluderer fler ganger!

$loadedUsers = array();

 

// MySQL spørring, henter alle postene til tråden

while ($row mysql_fetch_object($result)) {

if (!isset($loadedUsers[$row->user_id])) {

// user_url <-- hele stien til brukeren er allerede lagret i posten! Slik

// at vi trenger å lage den for vær gang denne loopen kjører.

include_once('./data/user/' $row->user_url 'userdata.php');

// Lagrer bruker i $loadedUsers for å ikke hente han fler ganger. Han er her!

$loadedUsers[$row->user_id] = true;

}

 

// Begynner å printe ut post og brukerinfo

echo 'post: ' $row->post;

echo 'signatur: ' $user[$row->username]['signature'];

echo 'kallenavn: ' $user[$row->username]['nickname'];

echo 'kallenavn: ' $user[$row->username]['numposts'];

}

 

?>

 

Samma info kommer til å være lagre i MySQL i tilfellet det går galt et sted.

 

Så spørsmålet mitt blir da om dette er totalt meningsløst og idiotisk? Funker det, er det raskere? Noen som kan gjøre

seg opp noen tanker? Jeg kan så lite om hvordan PHP behandler filer og hvordan MySQL takler data etc. Men leser jeg på

nett så sliter jo manger forum når de blir veldig store! Så funker dette bra, eller dårlig med tanke på stabilitet og

hastighet?

 

Tusen takk! :)

 

Også postet her:

http://norskwebforum.no/viewtopic.php?p=254000#254000

Lenke til kommentar
Videoannonse
Annonse

Skikkelige gode systemer bruker skikkelig caching, OOP kode og fornuftig oppsett

 

For Vikingboard har jeg implementert filcache basert på MySQL-data, samme er implementert her på Diskusjon.no Uten ekstra filcache hadde ting blitt bra tregt.

 

Man kan hverken ha alt i DB eller alt i fil, det vil ikke gå i lengden.

Lenke til kommentar

foresten. hvor lurt er dette?

 

Så når en bruker registrerer seg så lager jeg mappen: ./data/user/u/s/e/username/userdata.php. (/u/s/e/ <-- de første

tegnene i brukernavnet )

 

visst brukeren heter abc_!)#-

så vidt jeg vet så går det ikke ant at navnet på en mappe inneholer spesialtegn.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...