Projektowanie bazy pod plusy i minusy dla komentarzy

0

Chciałbym w swojej aplikacji dać znaną możliwość głosowania na komentarze dodawane do różnych treści. Normalnie zrobiłbym 1 tabelę - 3 kolumny - id usera, id komentarza, plus/minus, ale te plusiki się tak łatwo daje, że przy 10k użytowników po miesiącu będą już miliony rekordów, a baza też często będzie przeszukiwana. Czy są jakieś sprytne metody optymalizacji dla tego problemu. Jestem nowicjuszem w sprawach baz.

0

Nie lepiej dać id_komentarza i ilosc_punktow?

2

@Czarny Młot: i niby wtedy jak zabezpieczysz komentarze przed wielokrotnym plusowaniem?

@Pietruch: zrób dwie tabele - jedną taką jak Ty opisałeś, a drugą zgodnie z tym, co wspomniał Czarny Młot. Dzięki temu będziesz miał szybki lookup danych dla listy komentarzy, a jednocześnie blokadę przed wielokrotnym plusowaniem.
Ucieczki przed tym nie ma - fizycznie przecież musisz zapamiętać kto głosował, aby wiedzieć, czy aby przypadkiem nie próbuje zrobić tego samego znowu.

0

Reddit ma 35 milionów użytkowników i sobie radzą trzymając jeden wiersz na każdy głos. Kluczem do wydajności jest natomiast cacheowanie.

0

A nie stosuje się jakichś podziałów np. jedna tabela na 1 miesiąc i w zależności od tego w którym miesiącu dodany był komentarz to ta tabela będzie przeszukiwana?

0

Nie, bo po roku będziesz miał 12 tabel, którymi serwer będzie zarządzał gorzej, niż jedną.
Załóż indeks, a odpowiednią optymalizacją tego zajmie się baza danych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1