Ik heb verschillende soorten items, berichten, video's, foto's.
Daar kunnen mensen dan op reageren(comments).
Nou zou ik in de tabel voor comments het type en het id van het item waar op gereageerd op kunnen slaan. Maar dan kun je een groep comments(thread) niet aan meerdere items hangen(denk aan meerdere foto's die over hetzelfde gaan).
Dus had ik bedacht een threadId op te slaan.
Dit is ongeveer het idee:
Waar ik nu over zit te twijfelen is hoe ik de threadId ga bepalen.
Zo zou ik:
* Bij het aanmaken van een item gelijk een nieuwe threadId kunnen maken, maar dat is ook weer een beetje loos, op veel items zal toch niet gereageerd worden.
* Bij een nieuwe comment kijken of er al een threadId is voor het item waar op gereageerd wordt, zo niet, alle tabellen joinen en hoogste threadId pakken + 1
* Een aparte tabel threads aanmaken, met daarin enkel id's, auto incremented.
Mij lijkt de derde optie het beste. Maar misschien is er nog wel een veel nettere oplossing waar ik niet op kan komen?
Advies is zeer welkom
Daar kunnen mensen dan op reageren(comments).
Nou zou ik in de tabel voor comments het type en het id van het item waar op gereageerd op kunnen slaan. Maar dan kun je een groep comments(thread) niet aan meerdere items hangen(denk aan meerdere foto's die over hetzelfde gaan).
Dus had ik bedacht een threadId op te slaan.
Dit is ongeveer het idee:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| CREATE TABLE IF NOT EXISTS `messages` ( `id` int(11) NOT NULL auto_increment, `user_id` int(11) NOT NULL, `message` text NOT NULL, `comment_thread_id` int(11) NOT NULL, `timestamp` datetime NOT NULL, PRIMARY KEY (`id`), KEY `group_id` (`user_id`,`comment_thread_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `comments` ( `id` int(11) NOT NULL auto_increment, `user_id` int(11) NOT NULL, `thread_id` int(11) NOT NULL, `comment` text NOT NULL, `timestamp` datetime NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`,`thread_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
Waar ik nu over zit te twijfelen is hoe ik de threadId ga bepalen.
Zo zou ik:
* Bij het aanmaken van een item gelijk een nieuwe threadId kunnen maken, maar dat is ook weer een beetje loos, op veel items zal toch niet gereageerd worden.
* Bij een nieuwe comment kijken of er al een threadId is voor het item waar op gereageerd wordt, zo niet, alle tabellen joinen en hoogste threadId pakken + 1
* Een aparte tabel threads aanmaken, met daarin enkel id's, auto incremented.
Mij lijkt de derde optie het beste. Maar misschien is er nog wel een veel nettere oplossing waar ik niet op kan komen?
Advies is zeer welkom