sql - SQL 存储为 JSON 与向表中添加字段
问题描述
在 SQL 数据库中,将只显示您不会搜索的值存储为 JSON 对象字符串而不是为每个对象的属性添加额外的列有什么好处?
前任:
col1|col2|jsonString
--------------------
1 |1 |{prop1:A,prop2:B,prop3:C}
VS
col1|col2|prop1|prop2|prop3
---------------------------
1 |1 |A |B |C
就使用的内存或其他方面而言,一个比另一个更有效吗?如果您能提供也将不胜感激的资源。谢谢。
解决方案
当您不打算搜索时,将信息存储在 JSON 中的一个好处是避免架构更改。例如,您有一个允许用户存储其偏好的应用程序。这些偏好会随着时间的推移而增长。不同的用户设置不同的偏好,通常将其中一些设置为默认或空白。
如果您要为每个首选项创建一个字段,那么每当必须添加/删除首选项时,您都必须处理架构更改。如果您有一个存储此类首选项的 JSON 字段,您将在添加/删除首选项方面具有更大的灵活性。
如果您的应用程序语言可以轻松使用 JSON,那么应用程序询问 UserID 1 的首选项并解析 JSON 将变得非常容易。
推荐阅读
- python - 带有容差参数的 Pandas merge_asof 失败
- laravel - Eloquent ORM 获取最新项目查询
- sql-server - 将具有多个联系人的帐户显示为单独的列而不是行?
- android - Android后退按钮的用途,是确定还是取消?
- khan-academy - 如何通过可汗学院 API 选择视频中的语言?
- kubernetes - GKE 集群内 DNS 解析停止工作
- c# - 从 Service Fabric 应用程序中的 ApplicationManifest.xml 读取服务版本
- reactjs - 使用 JSX 扩展属性覆盖 JSX 属性
- html - 溢出内容隐藏在固定宽度的容器内,溢出作为滚动
- python - 在带有 Django REST 框架的 Django 中,添加新字段时更新旧对象的最佳方法是什么?