![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 7 Dołączył: 9.10.2007 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jak trzymać miasta w bazie. Otóż mam tabele 'users', każdy użytkownik ma swoje miasto. Pytanie czy poniższe rozwiązanie jest optymalne. Chce zrobić tak: Utworzyć tabelę 'cities' z polami: id | city id - zawiera nazwe miasta bez polskich znaków i będzie kluczem dla każdego miasta city - zawiera poprawną nazwę miasta z polskimi znakami Tabela 'users' w polu 'cities_id' będzie zawierać włąśnie klucz obcy miasta (czyli wartość z pola 'id' z tabeli 'cities') Dlaczego jako klucza nie chce używać liczby INT, ponieważ dzięki klucza w formie jak wyżej można będzie sortować użytkowników po mieście. W przypadku klucza typu INT sortowanie odpada. Gdyż w polu 'cities_id' w tabeli 'users' nie ma możliwości sortowania w ten sposób po mieście. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 7 Dołączył: 9.10.2007 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Racja ten WHERE nie jest tam potrzebny, Mały błąd (IMG:style_emoticons/default/smile.gif)
Właśnie przeprowadziłem testy; Do bazy users dodałem około 3 mln użytkowników, każdy ma jakieś miasto Miast jest ponad 100. Teraz zapytanie SQL:
Dodałem idexy na pola: id_city w tabeli users city w tabeli cities Zapytanie wykonuje się powyżej 30 sekund, czyli powyżej normy :/ Może jakieś pomysły ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 17:45 |