Jump to content
php.lv forumi

kur un kā glabāt lasītos rakstus?


ezis

Recommended Posts

hei!

forumā ir pāris raksti par read/unread tēmu.. Respektīvi, kā panākt, lai attēlotu izlasītos un neizlasītos rakstus.. ātri pārejot pāri, nevienā tā arī neieguvu skaidrību. Citi glabā iekš db -> useraID topiks ^^, tādējādi piepildot db ar ļoooooooti daudz ierakstiem. tad šis variants atkrīt. citi glabā cepumos.. bet ko īsti glabāt cepumā? visu lasīto rakstu id's ? cepums jau tik daudz nesver. arī to skaits no 1x domena ir ierobežots. vel ar cepumiem bija doma, ka glabāt tajos laiku, kad pēdējo reizi skatīta kāda sadaļa.. un tad, kad ieiet no jauna forumā, tad salīdzina, visi, kas jaunāki par cepuma vecumu, tie rādīsies pie lasītajiem :\ diezgan neveiksmīgi :\ + ejot no cita pc bus atkal cits rezultāts.

vēl jau varētu tā ka, karam topikam ir lauks kur glabājas visi lietotāji, kuri lasījuši viņu piem: 1,12,22,50. tad šo ņemtu ierakstu kaut vai ar split(','$useruID) un čekotu vai tavs id ir klucī.. bet tā atkal daudz laika aizietu, kamēr visus topikus izčekotu...

 

Nenāk prātā neviena gudra domā, kā un kur glabāt lasītos rakstus vai kā citādi realizēt šo.. :?

Edited by ezis
Link to comment
Share on other sites

Glabā SQL tabulā, piem. views un tad meklē pēc ID vai IP vai attiecīagis lietotājs vai IP ir jau skatījis šo rakstu!

$qu = mysql_num_rows(mysql_query("SELECT * FROM views WHERE ip='$_SERVER[remote_addr]' or uid=$uid AND rakstaid=$rakstaid"));
// un tad pārbaudi
if($qu==0) {
print "Jauns raksts, izlasi!";
}
else {
print "Skatīts!";
}

Link to comment
Share on other sites

Glabā datubāzē nevis izlasītos topikus, bet gan neizlasītos un kad lietotājs kādu izlassa, tad šī rindiņa pazūd no datubāzes.

 

Vai arī šādi:

a{color:black}
a:visited{color:white}

Nav gan permanent, bet dara savu funkciju neaizņemot gandrīz nekādu vietu :D

Link to comment
Share on other sites

Kavacky, a ja pēkšņi projekts aiziet debesīs un ir 1miljons aktīvu lietotāju ar super aktīvu forumu? Nav labāk glabāt visu vienā garā cepumā?

 

Nez kāpēc tad taisa bekapus :(

A ko darīt, ja lietotājs lieto savu kontu no vairākiem kompjiem?

Link to comment
Share on other sites

nu ja negribi glabāt bāzē, glabā failā katram jūzerim, tikai tur man laikas zaudēsi vēl vairāk un pie dafiga jūzeriem failu pārrakstīšana iedos taimautu, tam kurš pievienos postu. Bet tā jau unread masīvu paņemt katram savu no sava faila būs pat ātrāk iespējams.

Man gan domājas, ka tik lielos skaitļos ilgi netiksi, lai slogs bāzei baigākais būs. Iespējams serveri un datori vispār ieliks kloķi jūzeru skaitam pamatīgi. Negalvoju jau par to, ka Mūra likums šancēs vēl nez cik ilgi, bet ja tā godīgi, tā es uzskatiju jau pirms gadiem 5:)

Link to comment
Share on other sites

Varbūt ir kāds zinošs kā, piemēram, IPB un citi lielie forumu dzinēji to dara?

 

Es personīgi kaut kā domāju, ka tai lietai jālieto datubāze nevis cookies. Un plus vēl varētu kaut mēnesī reizi uzlikt cron job, lai patīra to db no ierakstiem, kas attiecas uz ilgstoši nelasītiem, veciem rakstiem.

Link to comment
Share on other sites

piem ja taisa šārēto forumu.. tas ir, vairāki akaunti uz viena hosta izmanto vienas un tās pašas tabulas, tad tie ieraksti sakrātos ātri! :? bet var jau arii taa: uzlikt kaut kaadu piem. def laiku pēc kura visi vecāki posti par to laiku skaitīsies izlasīti - tobiš old.. tad ierakstu skaitu db samazinātu.. :?

Link to comment
Share on other sites

biedri, pārprati mani. Nebiju domājis, ka db nojūk, bet teisim read/unread dati tabulā sāk pāsniegt 1miljonu + aktīvi lietotāji forumā ir pie 1k, kuri katru minūti lasa jaunus tematus. Pārslodze tak būs

 

1 milj, njaaaaa :)))

 

Nu tad paskataties, kā to dara IPB vai phpBB forumi...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...