W ramach edukacji, wyznaczyłem sobie zadanie nad którym poległem. Złe założenia na początku spowodowały, że muszę zasięgnąć porady/pomocy.
Oczywiście nie proszę o gotowe rozwiązanie a o kopniaki w dobrą stronę.
Temat w sumie wydaje się prosty. Użytkownik wybiera/głosuje na 10 filmów z 50.
Formularz zawiera 50 chceckboxów i tyle.
W bazie mam tabele dla film_votes oraz user_votes.
W film_votes mam
|id|director|title|votes|
Ponieważ chcę mieć także głosy poszczególnych userów (tylko dla zalogowanych) wymyśliłem to tak:
user_votes
|user_id|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|
z czego fx to film_votes.id na które oddał głosy
Chcę, aby po walidacji formularza były zliczane głosy i jeżeli np zagłosowano na 7 to user mógł jeszcze zagłosować na 3, ale oczywiście nie te same filmy.
Pytanie 1.
Czy struktura user_votes jest optymalna dla tego co chcę wytworzyć?
Pytanie 2.
Przy pierwszym głosowaniu dla user_votes użyję INSERT, przy kolejnych(jeżeli nie wykorzystał 10 głosów) UPDATE. Jak optymalnie napisać oba zapytania sprawdzając jednocześnie:
Czy user nie oddał więcej niż 10 głosów?
Czy user nie głosuje 2 razy na ten sam film?
Na razie tyle. CDN. Z góry dziękuję za pomoc w edukacji.