Я работаю над базой данных журналов в SQL Server 2008. Она будет состоять в основном из одной таблицы примерно так:
StepLog
----------------
StepLogID
ClientID
LogContent XML
CreateDate
По сути, в этой таблице произойдет то, что различные клиенты будут регистрировать определенные действия в этой таблице. Поле LogContent будет XML-нетипизированным, потому что мы не знаем, что клиенты хотят регистрировать.
Чтобы разрешить поиск в поле LogContent, текущий план заключается в программном уничтожении поля LogContent. Метаданные для измельчения должны быть в таблице примерно так:
XPathAttribute
----------------
XPathAttributeID
AttributeName
AttributeDescription
XPath
При вставке записи в StepLog у нас будет хранимая процедура, которая будет принимать все Xpath, определенные в XPathAttribute, и записывать их в другую таблицу, XPathAttributeValue
XPathAttributeValue
----------------
XPathAttributeValueID
StepLogID
AttributeID
AttributeValue
Моя первоначальная идея, при рассмотрении этого проекта, заключалась в том, «почему бы просто не использовать XML-индексы, как первичные, так и вторичные?»
У меня нет большого опыта работы с XML-индексами, а у первоначального дизайнера был некоторый плохой опыт работы с XML-индексами (низкая производительность) в SQL Server2005, так возник этот дизайн.
Обратная связь будет очень признательна!
спасибо,
Sylvia