Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql]Sortowanie wyników wg. pól zapisanych jako serialize
piotr94
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
elektrrrus
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 17:42