Kom ihåg mig?
Home Menu

Menu


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

Ämnesverktyg Visningsalternativ
Oläst 2013-12-08, 22:44 #1
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Standard 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?
Anaxa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-12-09, 12:40 #2
allstars allstars är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Apr 2006
Inlägg: 2 126
allstars allstars är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Apr 2006
Inlägg: 2 126
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.
allstars är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-12-10, 10:33 #3
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
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.
danjel är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:35.

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