Nie-podstawowe tabele bazy danych są koniecznością, jeśli Twoje dane są bardziej złożone niż model pocztowy WordPress, będzie ogromny i będzie zawierał wiele meta szczegółów, które będą przeszukiwane.
Format EAV, którego WordPress używa do tworzenia post meta, nie nadaje się dobrze do wyszukiwania według wielu kryteriów.
Jeśli podzielisz swoją metę na wiele wpisów, będziesz mieć wiele wpisów na post w tabeli meta postów, a wyszukiwanie dowolnego postu przez meta będzie znacznie wolniejsze.
Jeśli przechowujesz wszystkie meta zserializowane w tablicy i masz je tylko jako jeden wpis w meta post, tym razem będziesz zmuszony do wyszukiwania tylko tekstu wewnątrz tej meta i nie będziesz mógł używać operatorów porównania bezpośrednio w zapytaniu sql.
Nie jest to duży problem, jeśli Twoja wtyczka nie będzie miała tysięcy wpisów i powiązanych meta.
Ale poważny problem, jeśli Twoja wtyczka zrobi coś dużego.
Twoja sytuacja, nazwa pliku jako niezależny wpis i 3 wpisy metadanych dołączone do tego wpisu nie wydają się tak duże. Możesz do tego użyć tabeli postów i meta-tabel Wordpress.
ALE, jeśli ludzie będą często wyszukiwać te 3 meta, zwłaszcza w połączeniu, zalecam utworzenie osobnych tabel.
W tym formacie tylko jedna tabela z jednym wpisem, która zawiera również wszystkie metas, byłaby odpowiednia i szybko sprawdzałaby błyskawicę.
Nawiasem mówiąc, jeśli korzystasz z tabel WordPress, a także korzystasz z buforowania zapytań, użytkownik wyszukujący twoje dane zostanie z czasem zbuforowany i spowoduje mniejsze obciążenie. Ale nie byłoby to tak rozsądne, jak robienie oddzielnych tabel.