Pierwszy , czasami ten model znacznie ułatwia wykonywanie zapytań o dane. Zadałem pytanie kilka dni temu tutaj a niektórzy użytkownicy sugerowali, dlaczego nie zmieniłem modelu na formularz 1NF, aby ułatwić wyszukiwanie danych. Dopiero gdy zorientowali się, że utknąłem z tym projektem, udzielili odpowiedzi na pytanie. Chodzi o to, że miałem szczęście mieć tylko 12 kolumn do zsumowania; w przeciwnym razie, jeśli moja tabela zawierała 300 kolumn, być może żaden użytkownik nie zadał sobie trudu, aby napisać zapytanie dotyczące tego problemu. :-)
Drugi , czasami implementacja tego projektu jest łatwiejsza ze względu na pewne ograniczenia naturalnie narzucane przez bazy danych. Jeśli Twój meta_key
wartości zawierają długie wartości większe niż 30 znaków, albo musisz je skrócić i gdzieś wykonać mapowanie, albo będzie to prawdopodobnie jedyna opcja, jaką możesz mieć.
Wreszcie , wydajność jest bardzo ważna; to prawda. Ale z drugiej strony istnieją pewne techniki, które można zastosować, aby poprawić wydajność; na przykład poprzez tworzenie odpowiednich indeksów, partycjonowanie tabel i tak dalej.
W tym przypadku rozmiary stołów są bardzo małe. Tak więc, chyba że Twoje zapytania są bardzo skomplikowane, na przykład wymagają ciężkich obliczeń i skomplikowanych złączeń i agregacji, oraz jeśli aplikacja nie jest wrażliwa na małe ułamki czasu, myślę, że nie ucierpibyś na wydajności, gdybyś przyjął ten model.
Na końcu , jeśli nadal zbytnio martwisz się wydajnością, sugeruję utworzenie obu modeli, wypełnienie ich losowymi lub rzeczywistymi danymi i przeanalizowanie kosztów planu, aby zobaczyć, który model lepiej odpowiada Twoim potrzebom.