![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 7.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Hej
mam taki schemat bazy danych ![]() lub jak kto woli kod sql z przykładowymi danymi http://nopaste.info/4a1913ed7e.html wkleiłem tam ponieważ tutaj bardzo rozciągał post nie potrzebnie. Mam 3 tabelki: weapons, skills oraz peoples Oraz 2 tabelki łączące (relacja wiele do wielu): weapons_skills, peoples_skills Jeden człowiek może mieć wiele zdolności tak samo broń żeby ją obsługiwać wymaga wielu zdolności teraz jakimś zapytaniem chciałbym dla każdego człowieka (peoples) na podstawie jego zdolności jakie ma (peoples_skills) dopasować jak bardzo pasuje do niego ta broń (weapons) na podstawie tabelki (weapons_skills), czyli jeżeli broń ma wszystkie skille jakie posiada człowiek lub więcej niż ten człowiek to będzie 100% dopasowania, jeżeli nie ma wcale wspólnych to 0% i posródku wiadomo 10 ,20% czy ile tam wyjdzie, czy da się takie coś na takiej strukturze? jak nie to jak powinna wyglądać struktura? albo PHPem to zrobić? Bardzo prosze o pomoc |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Każdy może mieć swoje zdanie, ale ja bym to inaczej zrobił, ja bym nie używał relacji wiele-do-wielu, bo potem właśnie wychodzą takie problemy. Ja bym zrobił tak: mamy tabele:
- people - skills_peole - items ( bo co jeśli byś chciał mieć więcej rzeczy niż tylko bronie? Klient może Ci potem zażyczyć sobie ;-)) People to miały by ID_USER i inne ważne dla Ciebie rzeczy. Skills_people by miało kolumnę ID, ID_USER oraz np. VALUE i TYPE ( wartości ujemne i dodatnie, mogą być zmiennoprzecinkowe wtedy jest bardziej elastycznie). Następnie Items - ma rzecz jasna ID, REQIMENT_SKILL i np. TYPE i NAME. Teraz patrz jak prosto można to połączyć. Masz kilka userów od ID: 1, 2 oraz 3. To w tabeili PEOPLE. Każdy user zdobywa umiejętności, czyli w tabeli skills_people dodajez rekordy dla ID: 1, 2 i 3 - ale w value wpisujesz jednemu 2, 100, a innemu -10. Jak wyciągnąć teraz, który użytkownik ma najwięcej skilli i do danego przedmiotu? Banalnie prosto ![]() ![]() ![]() Jak będziesz potrzebował dalej pomocy śmiało pisz, zaradzę i pomogę ;-) -------------------- ---
"kto pyta ten nie błądzi"... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:14 |