Les tables de base de données non essentielles sont indispensables si vos données sont plus complexes que le modèle de publication WordPress, elles vont être énormes et elles contiennent beaucoup de méta-détails qui seront recherchés.
Le format EAV que WordPress utilise pour sa publication meta ne se prête pas bien à la recherche multicritère.
Si vous divisez votre méta en plusieurs entrées, vous aurez de nombreuses entrées par publication dans la table des méta-publications, et la recherche de n'importe quelle publication via les métas sera beaucoup plus lente.
Si vous stockez toutes les métas sérialisées dans un tableau et que vous ne les avez qu'une seule entrée dans la méta post, cette fois, vous serez obligé de faire uniquement des recherches de texte à l'intérieur de cette méta, et vous ne pourrez pas utiliser d'opérateurs de comparaison directement dans votre requête SQL.
Pas un gros problème si votre plugin ne va pas avoir des milliers d'entrées et des méta associées.
Mais un problème majeur si votre plugin va faire quelque chose de grand.
Votre situation, un nom de fichier comme entrée indépendante et 3 entrées de métadonnées attachées à cette entrée ne semblent pas si grandes. Vous pouvez utiliser la table de publication wordpress et la méta-table pour cela.
MAIS, si les gens vont souvent chercher ces 3 métas, PARTICULIÈREMENT en conjonction, alors je vous recommande de mettre en place des tables séparées.
Avec ce format, une seule table avec une seule entrée, qui contient également toutes les métas, serait correcte et interrogerait rapidement.
Par ailleurs, si vous utilisez des tableaux WordPress et que vous utilisez également la mise en cache des requêtes, l'utilisateur recherche vos données serait mis en cache au fil du temps et encourra moins de charge. Mais ce ne serait pas aussi prudent que de faire des tableaux séparés.