Лучший дизайн для реализации системы с динамическими столбцами в.NET

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

У меня есть объект сказать "пункт", который содержит информацию о ценах для нескольких валют, как

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

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

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

Item1 RAM 12

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

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

Как я могу иметь данные с PropertyBag.

1 ответ

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

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

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

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

Другие вопросы по тегам