Post
#1
|
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%)
|
Witam.
Ostatnio postanowiłem napisać sobie system powiadomień w serwsie. Proste powiadomienie to przypisanie rekordu użytkownikowi. Zaawansowane natomiast to takie, które jes rozsyłane do wszystkich przyjaciół uzytkownika. No wiadomo, nie będę rozsyłał d wszystkich userów po rekordzie, tylko rozpiszę tabelę trochę inaczej. Oto jej s ruktura: (klucz notice_owner napisany testowo)
Opis pól (ważniejszych): notice_owner - "posiadacz" powiadomienia notice_user - id user na temat którego jest powiadomienie Wykorzystanie.
PIERWSZE (unia):
(wykorzystane wszystkie klucze, oprócz notice_owner bo tego zapytania się on nie tyczy. Wyskakuje EXTRA w unii: Impossible WHERE noticed after reading const table...) DRUGIE (z wykorzystaniem OR):
(tutaj nie korzysta się z klucza notice_owner) Pytania: a ) które zapytanie jest bardziej optymalne (proszę wziąć pod uwagę brak wykorzystania klcza w OR, jeżeli da się go jakoś zbudować, to jak) b ) niepokoi mnie komunikat w EXTRA przy pierwszym zapytaniu dla unii: Impossible WHERE noticed after reading const table... Dziekuję za wypowiedzi. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Właśnie czytam i jakoś nie do końca rozumiem. Powinieneś najpierw napisać co ma być robione (tak dla laików) a potem sposób w jaki chcesz rozwiązać to. Bo nie jestem pewien czy dobrze zrozumiałem.
A nie możesz tego rozbić? Czyli stworzyć coś co trzyma relacje użytkownik - przyjaciele, czy ogólniej użytkownik - powiadomienie. Takie user_id,notice_id,type_id... Wtedy indeks na user_id i dwukolumnowy na user_id i type_id, aby móc wybrać tylko danego typu powiadomienia. Jeśli ma być ważna data to też dodać i zineksować. To taka tabela służąca do wyszukania elementów, gdy masz tylko te co potrzebujesz dołączasz dopiero dane (nieważne przy wyszukiwaniu a najczęściej sporo ważące). |
|
|
|
Athlan OR w warunku czy stworzenie unii 7.01.2008, 17:05:40
Athlan Sęk w tym, że przy warunku OR:
Dla przy... 30.01.2008, 15:35:11 ![]() ![]() |
|
Aktualny czas: 10.06.2026 - 05:14 |