Wątek przeniesiony 2020-05-08 02:09 z Nietuzinkowe tematy przez somekind.

Jak zrobić obszar działania dla danego klienta ? Jak zbudować tabele do tego ?

0

Jest klient, który oferuje swoje usługi. Wybiera je z kategorii usług, które to wpadają w prostą tabelę

ID user_id category_id
1 23 3
2 23 4
3 23 8
4 23 6
5 23 9

Tutaj mam sprawę rozwiązaną bo zawsze chodzi o kategorie ID. ALe poza obszarem jaki klient wykonuje trzeba dodać lokalizację i tu ma do wyboru:
kod pocztowy - tutaj użytkownik sam wpisuje wartości
województwo - wybierane z listy jako np id: 1 - poznanskie, 2 - sosnowieckie 3 - warszawskie itd
kraj - jako id 1
kraj i zagranica jako id 2
tylko zagranica jako id 3

Jak to teraz najlepiej zapisać w bazie danych bo klient może np dodać że działa w danym mieście kod pocztowy i w dwóch województwach

ID user_id kod_pocztowy wojewodztwo kraj kraj i zagranica tylko zagranica
1 23 93-432
2 23 3
3 23 5

Czy lepiej zrobić tabele klucz wartosc

ID user_id key value
1 23 kod_pocztowy 93-432
2 23 wojewodztwo 3
3 23 wojewodztwo 5

Czy może inny lepszy sposób ?

0

Robisz sobie tabelę pośredniczącą między tymi województwami czy raczej kodami pocztowymi ( bo one powinny być powiązane z województwem), a użytkownikiem.
Coś w stylu user_post_codes z kolumnami user_id i post_code_id.

1

Kody pocztowe są oddzielnie zupełnie od województwa. Znaczy jeśli ktoś zaznaczy sam kod to wyszuka go tylko ktoś kto poda taki kod. Jeśli ustawisz sobie kod pocztowy i województwo to ktoś wyszuka cię jeśli poda dane województwo a kod pocztowy nie będzie brany pod uwagę itd. Jeśli podasz że cały kraj to bedziesz widziany wszędzie.

0

Kod pocztowy określa województwo. Nie ma więc potrzeby przypisywania do użytkownika niczego więcej. Województwa powinny być w relacji z kodami pocztowymi. Reszta to już odpowiednie zapytanie z użyciem join i możesz wyszukiwać jak sobie chcesz. Baza zbudowana w sposób jaki opisujesz może doprowadzić do dziwnych błędów. Np. względu na błąd gdzieś w aplikacji ktoś wpisze, że ma kod pocztowy 60-XXX(Poznań o ile pamiętam) dla Podkarpackiego.

3

@jurek1980: Nie jest prawdą to co piszesz. Kod pocztowy nie jest przypisany do województwa. Np. 18-220 :)
screenshot-20200508083104.png

1

@Marcin.Miga: pełnego pokrycia nie ma, bo są zaszłości historyczne z okresu kiedy Polska była potęga jak USA i miała 49 stanów, tfu województw no i jakieś zmiany granic pewnie też następowały. Jak w takim razie Ty proponujesz rozwiązać problem autora?

1

Może GIS? Zamiast województw, kodów pocztowych, po prostu obszary na mapie? Nie wiem jaką potęgą jest MySQL jeśli chodzi o wsparcie dla GIS, ale zawsze zostaje PostgreSQL ;)

0

Nie ładuj lokalizacji do 1 tabeli, zrób dwie skoro to dwa odrębne byty

id
idUser
idKodu

id
idUser
idWojewodztwa

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0