Мое приложение часто должно украшать значения в документах, которые он служит, используя поиск, чтобы извлекать человекообразные формы различных кодов.
Например, <product_code>PC001</product_code>
хотел бы быть возвращен как <product_code code='PC001'>Widgets</product_code>
. Это не всегда product_code; существует несколько разных типов кода, которые нуждаются в подобном поведении (некоторые из них имеют всего несколько десятков примеров, некоторые из них - несколько тысяч.)
Что я хочу знать, является наиболее эффективным способом хранения этих данных в базе данных? Я могу представить две возможности:
1) Один документ для каждого типа кода со многими элементами:
<product-codes>
<product-code code = "PC001">Widgets</product-code>
<product-code code = "PC002">Wodgets</product-code>
<product-code code = "PC003">Wudgets</product-code>
</product-codes>
2) Один документ на каждый код, содержащий элемент <product-code>
, как указано выше.
(Очевидно, что оба варианта будут включать в себя разумные индексы)
Является ли это либо быстрее, чем другим? Есть ли другой, лучший вариант?
Я чувствую, что лучше всего держать одну вещь на одном документе, поскольку она концептуально немного чище и (я понимаю) лучше подходит для индексации ML, но в этом случае похоже, что это приведет к очень большому числу очень маленькие файлы. Это то, о чем я должен беспокоиться?