Извлечь нормальную форму из XML - PullRequest
2 голосов
/ 02 сентября 2010

<Historic><br> -----<ReturnData Year="2010"><br> ----- -----<ReturnHistory><br> ----- -----<Return StoreDate="2010-07-31" Type="1"><br> ----- -----<EndDate>2010-01-31</EndDate><br> ----- -----<ReturnDetail TimePeriod="1"><br> ----- ----- -----<Value>2.83</Value><br> ----- ----- </ReturnDetail><br> ----- -----</Return><br> ----- </ReturnData><br> -----<ReturnData Year="2010"><br> ----- -----<ReturnHistory><br> ----- -----<Return StoreDate="2010-07-31" Type="1"><br> ----- -----<EndDate>2010-01-31</EndDate><br> ----- -----<ReturnDetail TimePeriod="2"><br> ----- ----- -----<Value>1.83</Value><br> ----- ----- </ReturnDetail><br> ----- -----</Return><br> ----- </ReturnData><br> <Historic>

Я храню это в таблице следующим образом:

Имя таблицы = Историческая

Столбцы

StockId : int  
StockCode: string  
Year:int  
StoreDate: datetime  
EndDate: datetime  
ReturnTypeId: int 
TimePeriodId: int  

Естьмоя таблица в третьей нормальной форме?

Вы бы порекомендовали эту структуру или я должен создать соответствующие таблицы для каждого родительского узла, т.е. нормализовать ее дальше?

1 Ответ

0 голосов
/ 02 сентября 2010

Только из структуры нет четкого способа ответить на этот вопрос - находится ли таблица в 3NF или нет, во многом зависит от значения и «семантики» данных, хранящихся в этой таблице.

IЯ просто догадываюсь здесь: столбец Year, скорее всего, зависит от столбца StoreDate (или EndDate) - верно?

Кроме того, больше предположений: StockCode и StockId зависят друг от друга - это также нарушает 3NF - попробуйте поместить информацию о вашем складе в отдельную таблицу:

StockИнформация

StockId    INT
StockCode  STRING

, а затем сохраните только StockId в вашей фактической таблице и добавьте ссылку из вашей таблицы в StockInformation в столбце StockId.

Еслиесли вы удалите эти две проблемы, есть большая вероятность, что ваша таблица теперь может быть в 3NF - но опять же, это зависит от того, какие данные хранятся и что это действительно означает - не может точно проверить 3NF только на основе структуры полей.

...