PHP bir sosyal ağ tipi sitesinde çalışıyorum, ben daha önce bu yapmış ve site tutmak benim kodlama yeteneğini outgrew, bu bir kaç yıl önce oldu ve şimdi yine bu proje çözmek isteyen duyuyorum.
Basicly on my network there is a friend_friend mysql table that keeps track of who is who's friend, for every confirmed friend, there are 2 entries into the DB here is that table:
CREATE TABLE IF NOT EXISTS `friend_friend` (
`autoid` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(10) DEFAULT NULL,
`friendid` int(10) DEFAULT NULL,
`status` enum('1','0','3') NOT NULL DEFAULT '0',
`submit_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`alert_message` enum('yes','no') NOT NULL DEFAULT 'yes',
PRIMARY KEY (`autoid`),
KEY `userid` (`userid`),
KEY `friendid` (`friendid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1657259 ;
Ben daha sonra tüm kullanıcılar bilgileri denilen friend_reg_user ile kullanıcı tablo var
Then a table for bulletins that users post, the object is to only show bulletins from users who you are friends with. Here is bulletins table
CREATE TABLE IF NOT EXISTS `friend_bulletin` (
`auto_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(10) NOT NULL DEFAULT '0',
`bulletin` text NOT NULL,
`subject` varchar(255) NOT NULL DEFAULT '',
`color` varchar(6) NOT NULL DEFAULT '000000',
`submit_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`status` enum('Active','In Active') NOT NULL DEFAULT 'Active',
`spam` enum('0','1') NOT NULL DEFAULT '1',
PRIMARY KEY (`auto_id`),
KEY `user_id` (`user_id`),
KEY `submit_date` (`submit_date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=455144 ;
Tamam, böylece bu yapmak için ben bir kullanıcının tüm arkadaşlar almak ve bu arkadaşı kimlik numaraları olacak bu 1,2,3,4,5,6 gibi bir dize eklemek için friend_friend masada bir sorgu çalıştırmak ve ardından seçmek istiyorsunuz ya bülten tablodan nereden bülten yazar kimliği arkadaşım ID listesindedir
İkinci yöntem kullanmak için bir kerede tüm bu verileri almak için KATILDI.
Site çok büyük olur bir kez arkadaşları kayıtları ve bültenlerin milyonlarca DB varken benim arayışı nihayet, bu tüm yavaşlatır, işleri hızlandırmak için seçeneklerim nelerdir? Bunu yapmak için daha iyi bir yolu var mı? Ayrıca ben o durum güncellemeleri ve bloglar ve bültenlerin göstermek ve tüm böylece sadece bültenlerinde daha sonra bunlarla büyük siteler şimdi yaptığım gibi kullanıcı eylemleri daha fazlasını yapmak için bültenleri değişen planlıyorum