Forum dla administratorów stron WWW i developerów

Witaj!

AdminZone.pl to miejsce w którym możesz dowiedzieć się jak szybko i skutecznie wypromować swoją stronę WWW, zachęcić użytkowników do wypowiadania się i aktywnego udziału w życiu takiej strony.
Dołącz do naszej społeczności aby w pełni korzystać z usług oferowanych przez AdminZone.pl
Zaloguj się
lub
Zarejestruj się
 
Awatar użytkownika
Sekhmet
Użytkownik
Posty: 11
Rejestracja: 30 wrz 2012, 21:22

[PHP][MySQL] Jak zaprojektować bazę

Autor tematu

27 maja 2013, 14:01

Cześć
Pracuję nad pewnym projektem i napotkałem problem jak zaprojektować bazę by to działało jak najbardziej optymalnie.

Potrzebuję zapisania listy około 1000-2000 wpisów w bazie np. 1000 pytań w tabeli questions.
Użytkownik będzie miał dostęp do panelu w którym będzie mógł wyłączyć dla swojego konta dane pytanie.

Jak to ustawić?
Załóżmy że będzie tabela questions z 1000 wpisów z kolumnami
id|name|desc|answer

Potem tabela questions_disabled w których byłyby wpisy z kolumnami
question_id|user_id


Lecz obawiam się że to nie będzie zbytnio optymalne.
Dając dostęp do userowi do panelu z włączaniem/wyłączaniem pytań zaleję bazę zapytaniami dla każdego wylistowanego pytania czy użytkownik go wyłączył.

Mam kilka innych pomysłów ale są także bardzo szkodliwe dla bazy i nieoptymalne.

Jak najlepiej to rozwiązać?

Z góry dziękuję.
S.


 
Awatar użytkownika
Ralfp
Stały użytkownik
Posty: 476
Rejestracja: 11 sie 2012, 9:16

Re: [PHP][MySQL] Jak zaprojektować bazę

27 maja 2013, 15:32

Jak masz gdzieś wykorzystanie pamięci to dwa SQL. Pierwsze wyciąga wszystkie pytania a drugie pytania ukryte. Następnie na poziomie programu odsiej ukryte pytania. Można to optymalizując, cachując ID wszystkich pytań, następnie robiąc w aplikacji ID wszystkich \ ID ukrytych i tą listę wykorzystaj w drugim zapytaniu które wyciągnie pytania.

Alternatywą jest podzapytanie ale MySQL nie był pod nie specjalnie optymalizowany.... zresztą, nie był też optymalizowany pod zapytania IN, ale mielenie bazą danych po indeksach jest szybsze niż ciągłe wycieczki do bazy danych dla wielu indywidualnych zapytań.


 
Awatar użytkownika
Macsch15
Administrator
Posty: 1968
Rejestracja: 10 sie 2012, 16:12
Lokalizacja: Polska
Kontaktowanie:

Re: [PHP][MySQL] Jak zaprojektować bazę

31 maja 2013, 15:14

Możesz też ID zablokowanych przechowywać w postaci zserializowanej dla konkretnego użytkownika a potem wyplewić przez kod przejmujący te dane.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 41 gości