ziedinjsh Posted December 8, 2011 Report Share Posted December 8, 2011 es te tā domāju, kā darbojās siena.. kā piemēram facebook. Rāda jaunākas aktivitātes.. viņš viņas atspoguļo pēc datuma un laika kad tiek kas veikts, bet kā viņš savāc informāciju no visām tabulām? hmm, jeb arī pie katras sql injekcijas ir vēlviena injekcija kas saglabā aktivitāti pie wall tabulas!? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 8, 2011 Report Share Posted December 8, 2011 Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 8, 2011 Report Share Posted December 8, 2011 Nāk prātā visu, kam jāparādās uz "sienas", glabāt kkā... wall: - id, - type, - rel_id, - user_id; Un tad, ar džoiniem, izvilt no tabulām, kur īstais saturs tiek glabāts. Cik tas skaitās 'kruti' - nemācēšu teikt. Quote Link to comment Share on other sites More sharing options...
Kaklz Posted December 8, 2011 Report Share Posted December 8, 2011 Starp citu par SQL injekcijām sauc mazliet citas lietas. Lūdzu lieto pareizos terminus :) Tāda wall realizācija vairs nenotiek ar klasiskiem MySQL līdzekļiem - tur apakšā ir stipri jaudīgāks mehānisms un stipri paliela deva maģijas. Vienkāršajā gadījumā var skatīties uz daGrevis piedāvātā risinājuma variantu. Quote Link to comment Share on other sites More sharing options...
codez Posted December 8, 2011 Report Share Posted December 8, 2011 Facebook siena strādā aptuveni šādi: Tākā facebookā ir tuvu miljard lietotāji, tad mysql viņi izmanto tikai, lai pēc id glabātu lietotāja datus. Praktiski visi lietotāja dati vienmēr atrodas kešā. Tālāk fonā ir serviss, kurš no keša paņem lietotāja draugus, tad taisa multi requestus uz memcached serveriem, lai iegūtu visu draugu jaunākos fīdus, kurus samērdžo un atlasa pēc veselas kaudzes parametriem, tai skaita privacy, kad tas izdarīts, to visu nokešo, lai nākošereiz nebūtu tik daudz jadara. Bet tev ne tuvu nevajag to infrastruktūras sarežģītību, kas ir facebookā. tāpēc tabulas: users: id, name friends: id, friend_id posts: id, user_id, text, time wall_posts: user_id, post_id, time Kad tiek ielikts jauns wall posts, ieliec 1 ierakstu tabulā posts un tik cik cilvēkam draugu, tik ierakstus tabulā wall_posts, kur post_id ir nupat ieliktā posta id, bet user_id ir drauga id. Kad vajag atlasīt pēdējos 20 ierakstus, ko tavi draugi raksta sienu, taisi joinu: SELECT * FROM wall_posts wp LEFT JOIN posts p ON wp.post_id=p.id WHERE wp.user_id=$user_id ORDER BY wp.time DESC LIMIT 20; Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 8, 2011 Report Share Posted December 8, 2011 > Tāda wall realizācija vairs nenotiek ar klasiskiem MySQL līdzekļiem - tur apakšā ir stipri jaudīgāks mehānisms un stipri paliela deva maģijas. Tu mani ieinteresēji. Linki vai vismaz atslēgvārdi? :] Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted December 8, 2011 Report Share Posted December 8, 2011 daGrevis, visticamāk, tur ir murgains kods, kuru neviens nesaprot... kā jau visos tāda līmeņa projektos :) Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 8, 2011 Report Share Posted December 8, 2011 Gelvenais, ka strādā un junit testi rāda zaļās gaismiņas! :D Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted December 8, 2011 Report Share Posted December 8, 2011 (edited) Galvenais, lai programmeru staffs ir lēni mainīgs, vai, vēl labāk - nemainīgs ;) Edited December 8, 2011 by Mr.Key Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.