Как организовать данные
От: michael_isu Беларусь  
Дата: 29.06.09 10:48
Оценка:
Ситуация следующая: мне нужно отгружать определенную информацию (продаваемые автомобили) некоему человеку. формат данных, в котором он хочет получать информацию, описывается двумя файлами. В первом из них находится информация о структуре xml, который он хочет принимать. например 1 строка:

bodytype Тип кузова dictionary: cfd_bodytype

это означает, что в xml-файле должен быть узел bodytype и внутри значение из словаря cfd_bodytype. А информация о словарях лежит во втором файле и для cfd_bodytype есть следующая инфа:

'cfd_bodytype'
'3-х дв. хетчбек'
'5-ти дв. хетчбек'
'внедорожник'

а ещё элемент данных может быть без словаря, просто нужно вбить слово(например цвет кузова):
(color Цвет text)
а возможно что элемент — это опция и принимает значение true/false:
(immobilizer Иммобилайзер bool)

Задача: из этих двух файлов достать инфу, распихать их по нужным классам и положить их в БД. И чтобы было удобно все доставать и работать. .NET 3.5 без Linq2Sql и EF.

Например если элемент связан со словарем, то куда стоит ложить этот словарь? отдельное поле? но для некоторых элементов оно будет пустое (если словаря для него нет). Вобщем непонятно. То же касается и БД.

Как бы вы это все организовали?
Re: Как организовать данные
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.06.09 11:34
Оценка:
Здравствуйте, michael_isu, Вы писали:

_>Ситуация следующая: мне нужно отгружать определенную информацию (продаваемые автомобили) некоему человеку. формат данных, в котором он хочет получать информацию, описывается двумя файлами. В первом из них находится информация о структуре xml, который он хочет принимать. например 1 строка:


_>bodytype Тип кузова dictionary: cfd_bodytype


_>это означает, что в xml-файле должен быть узел bodytype и внутри значение из словаря cfd_bodytype. А информация о словарях лежит во втором файле и для cfd_bodytype есть следующая инфа:


_>'cfd_bodytype'

_>'3-х дв. хетчбек'
_>'5-ти дв. хетчбек'
_>'внедорожник'

_>а ещё элемент данных может быть без словаря, просто нужно вбить слово(например цвет кузова):

_>(color Цвет text)
_>а возможно что элемент — это опция и принимает значение true/false:
_>(immobilizer Иммобилайзер bool)

Ты сам схемы придумал или в xsd подсмотрел?

_>Задача: из этих двух файлов достать инфу, распихать их по нужным классам и положить их в БД. И чтобы было удобно все доставать и работать. .NET 3.5 без Linq2Sql и EF.


_>Например если элемент связан со словарем, то куда стоит ложить этот словарь? отдельное поле? но для некоторых элементов оно будет пустое (если словаря для него нет). Вобщем непонятно. То же касается и БД.


_>Как бы вы это все организовали?


Такой код лучше писать прямо в БД, MS SQL и Oracle подерживают работу с XML.

В .NET можно по xsd сделать dataset и заливать инфу через него.
Если уже совсем хочется объекты, то по xsd генерятся классы (утилитой xsd.exe), а потом они мапятся на БД.
Re[2]: Как организовать данные
От: michael_isu Беларусь  
Дата: 29.06.09 11:51
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Ты сам схемы придумал или в xsd подсмотрел?


Заказчик дал 2 csv-файла и 1 xml файл типа для примера. xsd нету.
Этот заказчик принимает самую разную инфу, не только для автомобилей, поэтому часть xml общая для всех товаров, а часть — кастомная, и описание было такое: вот тебе xml, вот сюда (внутри xml есть ветка items) нужно пихать то, что в первом файле прописано конкретно для автомобилей (полей 30, типа марки, модели, модификации и т.д.). И для некоторых из этих полей (только для некоторых) нужно будет лезть ещё во второй файл, т.к. мы можем принимать только те значения из списков, которые во втором файле лежат.
потом ещё хочет выгрузку для подержанных автомобилей, а потом возможно для запчастей, шин и прочего и в таких случаях нужно будет брать соотв. инфу из первого файла. Например для шин надо будет ложить уже не марки-модели-модификации, а типоразмеры-индексы нагрузки и т.д. Т.е. одной схемы нет.
И вот как это классам разложить — непонятно. Вернее у меня как-то получается, но криво.
Re[3]: Как организовать данные
От: DashkovAndrey  
Дата: 07.07.09 23:10
Оценка:
Здравствуйте, michael_isu, Вы писали:

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

мне кажется, что формализация формата данных и его описание это почти решение проблемы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.