C# 在.NET中使用动态列实现系统的最佳设计

C# 在.NET中使用动态列实现系统的最佳设计,c#,sql-server,datatable,expando,propertybag,C#,Sql Server,Datatable,Expando,Propertybag,我正在寻找目前SQL Server后端可用的最佳选项&C具有用于存储具有动态列的数据的前端。目前我的情况是 我有一个Object say项目,它包含多种货币的定价信息,比如 ID Name AUD USD CAD INR 1 Item1 1 1 1 1 到今天为止,我们有固定数量的货币显示是基于XML配置的货币文件,我们目前实现了固定数量的货币表。假设明天有新的货币加入,比如说欧元,前端没有做太多的改变,我可以假设datatable在这个场景中

我正在寻找目前SQL Server后端可用的最佳选项&C具有用于存储具有动态列的数据的前端。目前我的情况是

我有一个Object say项目,它包含多种货币的定价信息,比如

ID     Name    AUD  USD CAD INR 
1      Item1    1    1    1   1
到今天为止,我们有固定数量的货币显示是基于XML配置的货币文件,我们目前实现了固定数量的货币表。假设明天有新的货币加入,比如说欧元,前端没有做太多的改变,我可以假设datatable在这个场景中,后端表没有重大变化,我们在SQL Server或C中有支持动态列的任何新功能吗

我想到的一种方法是旧方法,用ItemID、ItemName和Dictionary/Expando Object/Property BAG创建ITEM类,货币价格如下

项目1 RAM 12

以XML或JSON格式序列化这些PropertyBag/Expando对象是否更好,这样可以更快地保存和检索

我希望在查询时以关系/表格格式查看每个项目的所有货币


如何让带有PropertyBag的datatable。

停止将值存储在不同的货币列中

拥有运营所在地的基础当地货币,并使用a提供不同的货币和计算价格

通过API,您可以提供所有提供实时汇率的货币


汇率一直在变化,因此为了避免更新表中的价格,请获取实时汇率并使用它。

听起来是正常化的好选择,而不是为每种货币单独设置一列,有一个列,我们称之为CurrencyID,它使用包含货币信息的查找表存储每种货币的ID,并使用该列。无需为新货币添加更多列!谢谢你,坦纳。每天我们都有30000件物品需要更新10个货币。每天总共需要存储和检索30KX10。我正在考虑将所有的currence进行序列化并存储在一个varchar列中……而不是将10个currence存储在10列中……或者将10个currence存储在一个表中有10行……如果您不想走API路线,那么我建议您按照@MJH在对您的问题的评论中所说的做。