Aktywne Wpisy
![fsfdjf](https://wykop.pl/cdn/c3397992/fsfdjf_JlwigrmzHB,q60.jpg)
fsfdjf +13
szukam chłopa, oto co mogę od siebie zaoferować:
1. pełne uzębienie (nie licząc ósemek)
2. okazjonalne przebłyski moich chorób psychicznych
3. miękkiego psiura co kocha wszystkich to ciebie pewnie też pokocha
4. jedzenie jak będę miała ochotę akurat gotować
5. zamiłowanie do przemocy domowej
tylko poważne oferty
1. pełne uzębienie (nie licząc ósemek)
2. okazjonalne przebłyski moich chorób psychicznych
3. miękkiego psiura co kocha wszystkich to ciebie pewnie też pokocha
4. jedzenie jak będę miała ochotę akurat gotować
5. zamiłowanie do przemocy domowej
tylko poważne oferty
![MakaronowyStwor](https://wykop.pl/cdn/c0834752/75199b8eb2b5eb89e5813cf86e6d432fb38542db98ff34a8ca964d3e6ea06a5d,q60.png)
Zastanawiam się jak rozwiązać pewien problem zw. z przechowywaniem danych mam encję Gracz i TypPrzedmiotu. Jeden gracz może mieć wiele przedmiotów danego typu, podobnie jeden typ może byś posiadany przez wielu graczy, więc teoretycznie sprawa jest prosta relacja n:m
Tak by wyglądał schemat bazy:
tabla gracz(id, nazwa)
1, 'gracz1'
2, 'gracz22'
tabla typprzedmiotu(id, nazwa)
1, 'miecz'
2, 'tarcza2'
3, 'stalowa tarcza'
tabla posiadaneprzedmioty(gracz, przedmiot)
1, 2
1, 2
2, 3
Coś takiego jak napisałem wyżej potrafię w EloquentORM zrobić, tylko problem jest taki że ilość wielu przedmiotów będzie szła w tysiące, więc nie będę przechowywał po 1000 rekordów tylko dlatego żeby mieć 1000 mieczy itp. Rozwiązaniem jest przechowywanie w tablicy posiadane przedmioty ilości:
tabla posiadane_przedmioty(gracz, przedmiot, ilość)
1, 2, 2
2, 3, 1
I tego już w EloquentORM zrobić nie potrafię, jakieś wskazówki, może jakoś inaczej podejść do problemu?
#php
@marek04: Dlaczego nie? ( ͡º ͜ʖ͡º)
Jeśli indywidualnie, to robisz po 1000 rekordów dla 1000 mieczy – w końcu musisz je jakoś rozróżniać.
Jeśli nie, to robisz tak jak pisałeś pod koniec (hint: szukaj w dokumentacji jak robić relacje many–to–many).
Czyli musisz to ręcznie zaimplementować: pobierasz rekord z tabelki pośredniczączej:
* jak nie istnieje, to tworzysz nowy
* jak istnieje, to zwiększasz licznik
* dokładasz unique index, żeby mieć pewność, że nie potworzysz zbędnych nowych relacji.
Ewentualnie możesz to nawet uprościć i zrobić w tym stylu one2many: na użytkowniku trzymać liczbę przedmiotów.
INSERT ... ON DUPLICATE UPDATE
- wtedy kompozytowy unique załatwia sprawę sprawdzania i wybierania pomiędzy INSERT a UPDATE.
EloquentORM
– wątpię, żeby oferował taką funkcjonalność na tym poziomie abstrakcji.