![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 331 Pomógł: 30 Dołączył: 11.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam wielojęzyczny system, w którym w polu nazwa w bazie danych przechowywane są nazwy we wszystkich językach jako zserializowane tablice asocyjacyjne. (czyli pole zawiera np. wynik działania funkcji serialize(array('pl'=>'Nazwa polska',en=>'English name')), czyli a:2:{s:2:"pl";s:12:"Nazwa polska";s:2:"en";s:12:"English name";}) I teraz mam takie pytanie, czy istnieje jakaś szybka metoda na sortowanie wyników zapytania według pola nazwa w określonym języku? Chodzi mi tu o sortowanie danych bez żadnych zmian struktury bazy danych, bo wiem, ze najlepszym rozwiązaniem byłoby utworzenie dodatkowych tablic z nazwami i odwoływanie się do odpowiednich tablic poprzez numery id rekordów w tablicy głównej, ale takie działanie wymaga zmiany struktury dosyć sporej bazy danych. Z góry dziękuję za pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Takie sortowanie jest możliwe tylko jeśli napiszesz sobie procedure w bazie która będzie w loce te dane wyciągać z serializowanego ciągu i na podstawie tego sortować. Niewydajne to to mocno.
Baza jest źle zaprojektowana jeśli trzeba się uciekać do czegoś takiego, jedyne wyjście to zmiana jej struktury. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 17:42 |