![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.10.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam, na początek krótkie streszczenie.
Serwis przechowuje informacje o sklepach/punktach naprawczych rowerów/części rowerowych, a także o dodatkowych usługach jakie dany punkt oferuje. Zaplanowałem: tabelę sklep(zawiera dane teleadresowe i krótki opis), tabelę marki_sprzętu(tabela słownikowa ok. 100 rekordów), tabelę usługi(ponownie tabela słownikowa ok. 20 rekordów). Użytkownik dodający swój punkt do bazy może wybrać obsługiwane marki sprzętu, tu pojawia się problem bowiem może zaznaczyć zarówno jedną, jak i wszystkie marki. Chciałem to zrealizować poprzez dodatkową tabelę przechowującą id_sklepu i id_marki jednak przy początkowych założeniach 3000 punktów i 100 marek (plus to,że większość użytkowników zaznaczyła wszystkie marki) daje mi tabelę na ok. 300000 rekordów. Tabele sklep i usługi połączone w sposób jak wyżej. Czy taka struktura zapewni optymalną wydajność wyszukiwań (przy założonym ruchu ok 100000 zapytań dziennie), czy możecie polecić mi jakieś bardziej wydajne rozwiązanie? Pozdrawiam Lynks -------------------- Studia przeszkadzają w spaniu
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Możesz umieścić to w jednym polu np po przecinku. Później odbierając dane z zapytania rozbić to po tym przecinku.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.10.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Ale takie rozwiązanie generuje problemy przy wyszukiwaniu punktów sprzedających konkretną markę.
Przy moim podejściu robię w sumie proste złączenie. Przy wpisaniu wartości do jednego pola muszę kombinować z LIKE (chyba wolniejsze niż JOIN ?)lub zastosować pole typu SET, które przechowuje niestety "tylko" 64 wartości. Ten post edytował Lynks 24.09.2009, 13:51:43 -------------------- Studia przeszkadzają w spaniu
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
A użycie w sql in() ? Też da Ci złączenie i będzie w jednym zapytaniu.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 30.10.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Szczerze mówiąc nie potrafię sobie wyobrazić jak mógłbym tego użyć - czy mógłbyś pokazać jakiś przykład?
PS. Wiem jak działa funkcja IN() ![]() -------------------- Studia przeszkadzają w spaniu
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
przykładowo:
Ten post edytował vokiel 25.09.2009, 15:22:23 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 02:01 |