2012-08-08 11 views
5

Myślałem o systemie sympatii dla mojej witryny i nie potrafię określić najlepszego sposobu podejścia do niego. Używam MySQL, a teraz mam tabelę działań, dla wpisów tekstu, zdjęć, filmów itp. Oraz tabelę komentarzy, do komentarzy. Możesz polubić zarówno komentarze, jak i wpisy aktywności, więc jak mam postąpić z kolumnami podobnej tabeli? Jestem otwarty na sugestie zmiany całego schematu, aby uzyskać bardziej spójny projekt.Schemat bazy danych podobnego systemu

Odpowiedz

11

Tylko tabelę o nazwie likes o strukturze tak:

`id` int(11) NOT NULL AUTO_INCREMENT, 
`userid` int(11) NOT NULL, 
`post_type` varchar(10) NOT NULL, 
`post_id` int(11) NOT NULL, 
`date` datetime NOT NULL, 
PRIMARY KEY (`id`) 

Wtedy gdy ktoś lubi takie stanowisko aktywności, należy wprowadzić identyfikator tego użytkownika, post_type jak aktywność, a następnie post_id byłby identyfikator pocztowy (oczywiście).

Jeśli ktoś lubi komentarz, zrobiłby to samo, ale zamiast tego wstawił komentarz dla typu wiadomości.

Następnie, aby uzyskać sympatie dla słupka działalności:

SELECT * FROM `likes` WHERE post_id = 'id' AND post_type = 'activity' 

byłoby Wystarczy wymienić 'id' ze zmienną id.

To samo dotyczy komentarzy (z wyjątkiem oczywiście zmiany post_type).

Mam nadzieję, że pomoże Ci to zorientować się, jak zrobić podobny system do swojej strony internetowej:

+0

Dzięki! Właśnie o tym myślałem parę minut temu. – Wiz

+0

@Wiz Nie ma problemu, cieszę się, że pomogło. :) – Nathan

Powiązane problemy