Wpis z mikrobloga

Sporo się dzieje, cały czas działam. Z ważniejszych rzeczy to mam już za sobą dodanie całego modułu dla kategorii i componentu po stronie frontendu. Póki co mam 164 kategorie. Zastanawiałem się jak to ugryźć od strony bazy danych, bo kategoria może być podkategorią innej kategorii i moja pierwsza myśl to było stworzenie tabeli categories i innej tabeli dla podkategorii, ale szybko się z tego pomysłu wycofałem.

Ostateczne rozwiązanie to prosta tabela, która składa się z:
id, parent_category_id, name, slug.

Oczywiście parent_category_id jest w relacji 'wiele do jednego' z id.

Mieszane mam uczucia z samym TypeORM, ale możliwe, że z każdym ORM jest podobnie. Np. przy wyciąganiu danych podstawowymi wbudowanymi funkcjami nie zwracało mi parent_category_id, jak dodałem relacje to znowu kopiowało pod parent_category_id wszystkie pola (co może byłoby dobre gdyby nie fakt, że relacja jest w tej samej tabeli). Skończyło się na tym, że napisałem mega zaawansowane query SELECT * FROM category ( ͡° ͜ʖ ͡°)

Tag do obserwowania: #startupzwykopem

#programowanie #programista15k #startup #bazydanych
  • 5
@itfind: w NoSQL zrobiłem sobie parent, ale też dodatkowe rzeczy.
Jesli baza ma text search to wystarczy:
np. Glowna > Mniej główna > jeszcze inna > najbardziej szczegółowa
Jesli baza nie ma text search to trzeba zrobić

[
Glowna,
Glowna > Mniej główna,
Glowna > Mniej główna > jeszcze inna,
Glowna > Mniej główna > jeszcze inna > najbardziej szczegółowa,
]