Лучший дизайн для реализации системы с динамическими столбцами в .NET - PullRequest
0 голосов
/ 31 августа 2018

Я ищу лучший вариант, который доступен сегодня с SQL Server Backend & C # имеет интерфейс для хранения данных с динамическими столбцами. В настоящее время мой сценарий похож на

У меня есть объект, скажите «Item», который содержит информацию о ценах для нескольких валют, как

ID     Name    AUD  USD CAD INR 
1      Item1    1    1    1   1

На сегодняшний день у нас есть фиксированное количество валют (количество отображаемых валют основано на XML-файле конфигурации валют), в настоящее время мы внедрили таблицу с фиксированным количеством валют. Предположим завтра, если будет добавлена ​​новая валюта, скажем, ЕВРО, без внесения особых изменений во внешний интерфейс (я могу предположить, что в этом сценарии можно датировать), и никаких существенных изменений в бэкэнд-таблицах, есть ли у нас какие-либо новые функции в SQL Server или C #, которые поддерживают динамические столбцы?

Один подход, о котором я думаю (старый подход) Создайте класс ITEM с ItemID, ItemName и Dictionary / Expando Object / Property BAG с ценами в валюте, такими как

Item1 RAM 12

Лучше ли отделить эти PropertyBag / Expando Object в XML или JSON, что быстрее для сохранения и получения.

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

Как получить данные с помощью PropertyBag.

1 Ответ

0 голосов
/ 31 августа 2018

Прекратить хранить значение в разных столбцах валюты.

Имейте базовую местную валюту, в которой вы работаете, и используйте валюту API , чтобы предлагать разные валюты и рассчитывать цены.

С помощью API вы можете предлагать все валюты, которые имеют действующий обменный курс.

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

...