Я пишу XML-парсер в C# .Net и для этого конкретного фрагмента XML. Мне сложно понять, как я буду разбирать и хранить его отношения в базе данных. См примера XML ниже:Лучший способ представления n-уровневых вложенных XML-имен с таким же именем?
<Article name="x" date="y">
<Words>
<Category ID="1000" Name="Person">
<Keyword ID="1124" Name="Adult">
<Keyword ID="1125" Name="Female" />
</Keyword>
</Category>
<Category ID="1000" Name="Person">
<Keyword ID="1124" Name="Adult">
<Keyword ID="1126" Name="Male" />
</Keyword>
</Category>
</Words>
</Article>
Таким образом, вы можете видеть, что есть N Категории каждые из которых содержит N вложенных ключевых слов узлов. Каков наилучший способ представления этих реляционных данных?
У меня есть основной XML-документ всех возможных комбинаций ключевых слов и категорий. Это моя первая мысль, но, пожалуйста, поправьте меня, если есть лучший способ:
- Таблица для всех ключевых слов/Категории: ID, имя, ParentID
- Таблица для статьи: ID, имя, дата,
- Пойдите в конец узла ключевых слов в каждом узле категории и добавьте в таблицу поиска: ID, ArticleID, KeywordID
Тогда я мог просто выполнить объединение и рекурсивно найти всех родителей самого нижнего узла ключевого слова.
У вас есть xml, у вас есть таблица базы данных. Какое представление вам нужно? –
На самом деле, я думаю, мой реальный вопрос заключается в том, как в C# вы попадете к последнему узлу Ключевого слова в каждом узле категории? – jethomas
Вам нужно получить элементы 'Male' и' Female' из этого xml? Не получив элемент «Взрослый»? –