![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Posiadam dwie tabele w mysql.
Tabela towarów:
oraz początków nazw - identyfikująca rodzaj produktu:
Chciałbym pogrupować pierszą tabelę wg początków nazw z drugiej. (kolumna 'cena' jest tylko po to aby pokazać że grupowanie nie jest bezsensowne). Jakieś pomysły? Pierwszej tabeli nie mogę edytować. Żeby nie było: mysql znam, nie radzę sobie tylko ze zmienną długością masek. Gdyby wszystkie maski miały tą samą długość nie miałbym problemu:
Ten post edytował timon27 7.05.2013, 09:20:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Najgorszym z możliwych rozwiązań jest takie złączenie:
Najbardziej optymalnym i w dodatku bezinwazyjnym (nie trzeba modyfikować czyjejś aplikacji) rozwiązaniem wydaje się być utworzenie trzeciej tabeli maski_towarow zawierającej jedynie dwie kolumny id_maski i id_towaru, obie będące kluczem głównym. Później jednorazowym zapytaniem
uzupełniamy tabelę maski_towarow i w naszej "części" aplikacji korzystamy właśnie z niej:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
utworzenie trzeciej tabeli maski_towarow zawierającej jedynie dwie kolumny id_maski i id_towaru Jak niby mam to zrobić ? Przed każdym wywołaniem zapytania (o które pytam w tym wątku) mam tworzyć tę tabelę? To dopiero będzie nieoptymalne. Bo nie wyobrażam sobie monitorować w czasie rzeczywistym czy ktoś właśnie nie dodaje towarów do tabeli aby uzupełnić tabelę powiązań. LOCATE(nazwa,maska)=1 Dokładnie o to mi chodziło. Czas wykonania 3 sekundy (kilkanaście tysięcy towarów, setka masek) - akceptowalny przy własnych zestawieniach, choć faktycznie nieakceptowalne gdybym potrzebował to ze strony klientów. Ten post edytował timon27 7.05.2013, 11:55:41 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 09:16 |