Potrzebuje przeprojektować baze pod API. Aktualnie wygląda tak:
https://i.imgur.com/EW56Gyf.png Oczywiście chcę uzyskać jak najbardziej skalowalną scheme.
Głównie chodzi o jednostki <=> tagi.
Miałem pomysł, by sterować pewnymi opcjami za pomocą tagów. Czytaj przenieść 'is_male', 'is_only_dmm', 'has_aw_image' jako tag. Czyli mamy tag 'male' i wiemy, że dana jednostka jest płci męskiej. Jest to jakieś rozwiązanie i ułatwia wyszukiwanie via SQL. Niestety(? :D) umożliwia to stworzenie jednostki dwupłciowej.
Porzucając ten pomysł, mogę usprawnić kolumny: np. zamiast is_male dać gender jako enum etc. ale wtedy mam problem z zaprojektowaniem wyszukiwarki (być może dlatego, że jestem słaby z sqla lub, że uzywam eloquenta). Ten problem można rozwiązać po stronie "kolekcji". Query z edgeloaderem na wszystkie rzeczy, a potem szukam po kolekcji w pamięci php.
Rekordów w Units będzie około 350~, ale mogą się zwiekszyć do ~1000 w ciągu 7 lat... :D
W niedalekiej przyszłości mają dojść takie rzeczy jak:
- staty: wraz z 3 poziomami zaawansowania, a projektanci zapowiedzieli 4. czyli jednostka może mieć do 4 różnych wartości statystyk (bulbasaur ma mniejsze statystyki niż venusaur na ostatnim poziomie, a venusaur jest pozniejsza formą bulbasaura)
- umiejętności: wiele jednostek może mieć tą samą umiejętność, bulbasaur i bellsprout maja vine whip
- zdolności: wiele jednostek może mieć taka samą zdolność, przyklad levitacji gastliego i koffinga
- pare innych rzeczy, których są w fazie "czy warto je dodawać"
TL;DR:
Robić flagi jako pojedyńcza kolumna w tabeli, czy flaga jako "tag" w osobnej tabeli połączonej many to many?