- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在构建一个 C# 项目配置系统,它将配置值存储在 SQL Server 数据库中。
我本来打算这样布置 table 的:
KeyId int
FieldName varchar
DataType varchar
StringValue varchar
IntValue int
DecimalValue decimal
...
值将与 DataType 列中的值一起存储和检索,以确定要使用哪个值列,但我真的不喜欢这种设计。所以我想我会走这条路:
KeyId int
FieldName varchar
DataType varchar
Value varbinary
这里 DataType 中的值仍然会确定返回的值的类型,但它们都在一列中,我不必像以前那样编写大量重载来适应不同的类型解决方案。我只是将值作为字节数组拉入,并使用 DataType 执行任何必要的转换以获得我的值。
varbinary 方法是否会导致任何性能问题,或者将所有这些不同类型的数据放入 varbinary 只是一种不好的做法?我已经搜索了大约一个小时,但无法得到明确的答案。
此外,如果任何人都可以想到更可取的方法来得出相同的结论,我会洗耳恭听。
最佳答案
您可以将您的设置序列化为 JSON,然后将其存储为字符串。然后您将所有设置都放在一行中,您的客户可以根据需要反序列化。这也是一种随时添加其他设置而无需对数据库进行任何修改的安全方法。
关于c# - 将值存储在单独的、特定于 C# 类型的列中,还是全部存储在一列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684302/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
正如您在 this travis.yml 中看到的那样文件,我的代码依赖于一些第三方库,我在构建项目之前将它们安装在远程系统上。 Travis 每次推送提交时都会下载并构建这些库,这可以避免吗?我的意
我是一名优秀的程序员,十分优秀!