WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Skapa en faceboook vägg med större dbfråga (https://www.wn.se/forum/showthread.php?t=1060095)

Anaxa 2013-12-08 22:44

Skapa en faceboook vägg med större dbfråga
 
Tja!

Har fått i uppdrag att bygga en liknande "wall" som Facebook.
Jag vet inte hur dom har designat deras poster men jag kan tänka mig att det är ungefär såhär.

wallPost_ID
author_ID
author_type /* account, group, site, etc.. */
content
timestamp

Och när man då har cirka 100 personer som man, i vårt fall, kan följa blir sgl riktigt stort. e.g.

select wp.*
from wallPosts wp
where
wp.author_ID = 2 OR
wp.author_ID = 4 OR
wp.author_ID = 23 OR
wp.author_ID = 55 OR
wp.author_ID = 233 OR
wp.author_ID = 455 OR
wp.author_ID = 63 OR
wp.author_ID = 23 OR
wp.author_ID = 342 OR
wp.author_ID = 65 OR
wp.author_ID = 22 OR
wp.author_ID = 3 OR
....

Min tanke är att de använder något caching system. Men hur cachar dom posterna? Eller hämtar dom direkt från databasen?

allstars 2013-12-09 12:40

Det finns en relationstabell som hanterar vänner, som man använder med fördel.

Sedan har facebook någon form av "intelligens" i sorteringen "topphändelser" som jag inte förstår mig på (tycker att den är lite märklig ibland).

I en så stort system som fb måste man använda caching. Det borde de flesta sajterna ha.
Sedan hur man ska konstruera cachningslogiken vet jag inte just nu.

danjel 2013-12-10 10:33

det går att skriva så här:
where wp.author_ID IN(2,4,5,6...)

Men försök göra en kopplingstabell och joina istället, om du har dessa kolumner i en ny tabell:
userID, author_ID

Du kommer inte behöva caching om det inte är ett "stort" system du gör.


Alla tider är GMT +2. Klockan är nu 11:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson