C#、SQL : Storing arbitrary user data in a database as serialized binary

标签 c# sql-server database-design settings

您是否认为将各种用户数据以序列化二进制形式存储在数据库中是不好的做法?这是一个好主意、坏主意还是非常丑陋的主意?

我说的是非常随意的事情,例如表单上最后的分隔符距离、搜索文本框中的最后一个值、先前选择的复选框索引等等。应该记住的事情,忘记了并不重要。

我有点喜欢它,因为我只需要一个表,例如四列:userid、source、key 和 value。如果我创建一个很好的包装类来保存和加载值到这个表,事情就会非常好地工作。例如,每当出现一种新的设置时,我就不必修复数据库。

它当然不适用于搜索和排序以及类似的事情,但无论如何都不需要,因为您只能直接从它们的索引(用户 ID + 源 + 键)访问这些键值对。这些列也不是人类可读的,但这也不是真正的问题。数据将是可以毫无问题地清除的数据。

对这个想法有任何反馈吗?这是一个可怕的吗?这是一个好吗?你做过类似的事情吗?

最佳答案

由于您不是在搜索,所以这不是一个坏主意 - 它是一个用于存放杂项用户数据的不透明容器,正如您所说,它不包含任何关键信息。你是对的,你不需要更改数据库来支持新的设置配置。

关于C#、SQL : Storing arbitrary user data in a database as serialized binary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079530/

相关文章:

c# - WPF 数据网格不会自动刷新 Entity Framework

sql-server - 用于获取性能统计信息的 SQL 命令

python - 前向声明 - django 中没有管理页面?

database - 如何在数据库中创建和/或关系?

c# - 比较 XML 文件是否相等的最佳方法是什么?

c# - .Net 核心 HttpClient 错误?套接字异常 : An existing connection was forcibly closed by the remote host

c# - .NET Core 3.1 Identity 在 Azure 上登录需要很长时间

sql-server - 更改 SQL Server 中的当前数据库路径

mysql - 如何以与在数据库服务器上完成的方式大致相同的方式检查约束

MySQL 忘记了自动为外键创建索引?