![]() |
![]() ![]() |
![]() |
![]() ![]()
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. -------------------- http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Możliwe? - Raczej tak
Możliwe w prosty sposób? - Na pewno nie Tutaj masz temat jak koleś posortował wyniki po wartości znajdującej się w zmiennej w formacie json, więc analogicznie mógłbyś to zrobić u siebie, sposób bardzo ciekawy, aczkolwiek radziłbym Ci przerobić strukturę danych, bo jak w jednej zmiennej trzymasz wiele zmiennych to znaczy, że jest źle zaprojektowana baza -> http://www.phpbuilder.com/board/showthread.php?t=10363945 |
|
|
![]()
Post
#3
|
|
![]() 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. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 331 Pomógł: 30 Dołączył: 11.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc, w takim razie trzeba przekonwertować bazę na wiele zależnych tabel, tak jak być powinno;-)
Ten post edytował piotr94 21.06.2011, 21:31:02 -------------------- http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 22:42 |