Ben ik weer 
Situatie is als volgt:
Tabel met gebruikers, laten we het even simpel houden:
Deze gebruikers moeten vrienden van elkaar kunnen worden.
Hoe ga ik dat nu opslaan?
Zou bijvoorbeeld zo kunnen:
En dan elke vriend los opslaan. Maar bij veel gebruikers en veel vrienden wordt de tabel dan wel erg groot.
Het zo ook zo kunnen:
en dan alle vriendjes ids als een CSV opslaan, en later data ophalen met FIND_IN_SET()
Maar ja een text veld is dan weer niet te indexeren.
SET datatype is dan weer geen optie omdat het maar 64(?) waarden kan bevatten, en ook niet echt flexibel is.
Iemand een idee hierover?
Situatie is als volgt:
Tabel met gebruikers, laten we het even simpel houden:
MySQL:
1
2
3
4
| CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR( 255 ) NOT NULL ) |
Deze gebruikers moeten vrienden van elkaar kunnen worden.
Hoe ga ik dat nu opslaan?
Zou bijvoorbeeld zo kunnen:
MySQL:
1
2
3
4
5
6
| CREATE TABLE `users_friends` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `userid` INT NOT NULL , `friend_userid` INT NOT NULL , INDEX ( `userid` , `friend_userid` ) ) |
En dan elke vriend los opslaan. Maar bij veel gebruikers en veel vrienden wordt de tabel dan wel erg groot.
Het zo ook zo kunnen:
MySQL:
1
2
3
4
5
6
7
| CREATE TABLE IF NOT EXISTS `users_friends` ( `id` int(11) NOT NULL auto_increment, `userid` int(11) NOT NULL, `friend_userids` text NOT NULL, PRIMARY KEY (`id`), KEY `userid` (`userid`) ) |
en dan alle vriendjes ids als een CSV opslaan, en later data ophalen met FIND_IN_SET()
Maar ja een text veld is dan weer niet te indexeren.
SET datatype is dan weer geen optie omdat het maar 64(?) waarden kan bevatten, en ook niet echt flexibel is.
Iemand een idee hierover?