Моему приложению часто приходится украшать значения в документах, которые оно обслуживает, используя поиск для извлечения удобочитаемых форм различных кодов.
Например, <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, но в этом случае кажется, что это приведет к очень большому количеству очень маленьких файлов. . Это то, о чем я должен беспокоиться?