Лучший дизайн для реализации системы с динамическими столбцами в.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 вы можете предлагать все валюты, которые имеют действующий обменный курс.
Обменные курсы постоянно меняются, поэтому, чтобы избежать необходимости обновлять цены в ваших таблицах, получите реальный обменный курс и используйте его.