在数据库中存储数组

2024-02-04

我想知道在数据库中存储数组是否真的是好的做法?我倾向于使用json_encode而不是serialize,但只是想知道这是否是一个好主意。如果没有,那么我可以做一些小的更改,然后用逗号将数组内爆。


不,这是一种可怕的做法。请不要插入 CSV、JSON*、serialize()或任何类型的序列化数据关系型的数据库。非规范化几乎总是一个坏主意——除非你真的知道自己在做什么,否则不要这样做,否则你会开始问 诸如此类的问题:this https://stackoverflow.com/questions/7363000/oracle-sql-getting-the-nth-element-regexp, this https://stackoverflow.com/questions/7269882/unserialize-value-of-database-and-putting-it-in-json-encode-after-foreach, this https://stackoverflow.com/questions/7201158/join-tables-with-comma-values, this https://stackoverflow.com/questions/7212282/is-it-possible-to-query-a-comma-separated-column-for-a-specific-value, ...

这样做,你就会失败或者严重阻碍你的能力:

  • Use JOINs.
  • 查找或修改特定元素
  • 强制引用完整性
  • 从索引使用中获益
  • 而且还浪费空间

这可能听起来很迂腐,但看到人们这样做是我最讨厌的事情之一——特别是考虑到 SO 上提出的大量问题,如果他们做得正确的话,这些问题是可以避免的。

Here's 正确的方式 https://stackoverflow.com/questions/7296846/how-to-implement-one-to-one-one-to-many-and-many-to-many-relationships-while-des/7296873#7296873在 RDBMS 中建立一对多和多对多关系。

*Although some SQL databases have built-in support for JSON, it's often better to restructure your data so that you don't need this

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在数据库中存储数组 的相关文章

  • JSON 解析错误:需要“STRING”

    我在用JSONLint http jsonlint com 解析一些 JSON 我不断收到错误 错误 第 1 行解析错误 产品 需要 STRING 却得到 未定义 这是代码 product code Abc123 description S
  • get url 重定向时 File_get_contents() 不起作用

    我正在使用的功能是 function http post url data data url http build query data data len strlen data url date default timezone set
  • 在单行上获取 jq 的输出

    我使用以下输出 https stackoverflow com a 40330344 https stackoverflow com a 40330344 issues key status fields status name assig
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • 媒体的 Google Cloud Storage 签名网址

    我已经建立了一个视频网站 为用户提供 m3u8 和关联的 ts 文件 我不希望媒体文件免费可用 所以我所做的是 当用户在网站上时 在 mysql 中使用他们的 IP 和令牌创建一个会话 当他们请求特定媒体子域 mp4 domain com
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • 使用 PHP Selenium Webdriver 单击下拉菜单中的选项?

    我正在使用 PHP Selenium Webdriver 包装器Facebook https github com facebook php webdriver 任何人都可以给我一个如何单击或从选择下拉菜单中选择选项的示例吗 我已经尝试过这
  • MySQL InnoDB 约束不起作用

    我偶然发现 innoDB 约束的奇怪行为 但找不到原因 我有包含数据的表格 下面列出了它们的结构 CREATE TABLE contents id int 10 unsigned NOT NULL AUTO INCREMENT title
  • pg_restore错误:角色XXX不存在

    尝试将数据库从一个系统复制到另一个系统 涉及的版本是9 5 0 源 和9 5 2 目标 源数据库名称是foodb与主人pgdba并且目标数据库名称将被命名foodb dev与主人pgdev 所有命令都在将托管副本的目标系统上运行 The p
  • Google Cloud SQL 上的故障转移如何运作?

    我打算将 PHP 应用程序 从 Google Cloud Platform 外部的服务器 连接到 Google Cloud SQL 我想知道如何设计应用程序以正确地对其数据库进行故障转移 根据manual https cloud googl
  • 未传递“client_reference_id”参数

    我使用 Stripe Checkout Stripe 版本 2016 07 06 我想通过参数 client reference id 恢复个性化数据 但在 JSON 中 当我有金额或电子邮件时 我找不到它 我是在测试环境中 你能帮我吗 先
  • 使用 Instagram Basic Display API 时出现“无效平台应用程序”错误

    我正在尝试使用 Instagram Basic 显示 API 但是当我发布授权代码以获取访问令牌时 我不断收到以下错误 error type OAuthException 代码 400 error message 平台应用无效 我正在遵循此
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • Codeigniter - 出现 404 Not Found 错误

    我们在 godaddy 有两个托管套餐 我们的实时网站使用以下 htaccess 文件运行良好 无需在 url 中使用 index php 即可访问网站 RewriteEngine On RewriteCond REQUEST FILENA
  • PHP 中的引用

    我正在编写一个自定义博客引擎 并且希望拥有类似于 Wordpress 的引用 我可以查看 WordPress 源代码 但我真的更喜欢某种教程 但到目前为止我还没有找到 有没有关于在 PHP5 中实现 trackbacks 或 pingbac
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据

随机推荐

  • 使用 Shiro 登录后重定向到最后访问的页面

    使用 apache shiro 登录并重定向到最后访问的页面的更好方法是什么 我只有这个 SecurityUtils getSubject login new UsernamePasswordToken username password
  • 将“NonSerializedAttribute”设置为自动属性

    这在 C 中无法完成 有什么办法可以做到吗 laugh 以防我的双关语不被理解 我的意思是 如何将 C 中的属性标记为 NonSerialized 当然 当属性包含逻辑时 很自然地无法做到这一点 但是自动属性是可序列化的 因此 我希望有某种
  • 头部和身体之间的脚本元素。 [HTML5] [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 当我向W3C验证时 我收到了回复 头
  • TensorFlow Serving:将图像传递给分类器

    我在 Tensorflow Python tensorflow 1 9 0 和 tensorflow serving 1 9 0 中构建了一个简单的分类器 它将对象分类为 5 个类之一 现在 我想为该模型提供服务 我已经导出它并给它一个分类
  • 未使用哈希默认值[重复]

    这个问题在这里已经有答案了 今天我尝试了以下代码片段 但我不明白为什么它们之间会得到不同的结果 据我所知 它们是相同的 一使用默认值offHash另一个片段在访问该键之前为该键创建一个空数组 有谁明白发生了什么事吗 Hash default
  • Makefile C子目录规则make obj

    我正在运行一个简单的 Makefile 没有任何问题 CC gcc CFLAGS std c99 ggdb Wall I DEPS hellomake h OBJ hellomake o hellofunc o o c DEPS CC c
  • MySQL存储过程创建用户

    我正在尝试创建一个存储过程来在 mysql 服务器 5 6 21 中创建用户 但它抛出以下错误 错误代码 1445 不允许从存储的函数设置自动提交 或触发 下面的代码 CREATE PROCEDURE add User IN p Name
  • 在 SwiftUI 中为多值更改贡献动画(动画弃用)

    所以 我有一些结构为我提供了很多参数 struct MyAppearance public var offset CGSize zero public var scale CGFloat public var rotation SwiftU
  • HSV OpenCv 颜色范围[重复]

    这个问题在这里已经有答案了 谁能告诉我一个网站的名称或任何地方我可以从哪里获得基本颜色的 HSV 上限和下限范围 例如 黄 绿 红 蓝 黑 白 橙 实际上 我正在制作一个机器人 它首先会遵循黑色线 然后在线的中间会给出另一种颜色 其中 3
  • 可拖动图钉 Windows Phone 7 bing 地图控件

    只是想知道是否有任何关于如何在 Windows Phone 7 应用程序中为地图编写可拖动图钉的资源 我仔细查看了 只能找到有关如何为浏览器应用程序执行此操作的信息 理想情况下 我希望用户能够单击图钉并将其拖动到地图上的某个位置 但是 目前
  • SQL Server FTI:如何检查表状态?

    在 SQL Server 全文索引方案中 我想知道表是否在 start chage tracking mode update index mode start change tracking and start background upd
  • 如何引用语法中先前匹配的项目?

    我正在尝试解析 BibTeX 作者字段 并将其拆分为单独的作者 这将帮助我重写每个作者的姓名首字母 这是一个最小的例子 use v6 my str Rockhold Mark L and Yarwood RR and Selker John
  • android.support.v4.util.Pair 与 android.util.Pair

    我读到support v4lib 允许 android 向后兼容 因此 IIUC 当存在歧义时 最佳实践始终是从以下位置导入库android support v4 right 是的 这是明智的 但并不总是需要 我这个案例Pair是 API
  • 如何从组件打开 ng-template 模态?

    我有一个用 ng template 包裹的模态
  • 克隆系统调用 OS X 未链接 - 未定义的符号 [重复]

    这个问题在这里已经有答案了 我想使用cloneOS X 上的系统调用 这是一个 Unix 系统调用 所以应该不是问题 对吧 我已经成功尝试使用fork vfork以及其他类似的功能 这是我正在尝试的程序 include
  • 如何使用免费且公开的Rapid API并在flutter Application中调用API

    例如 我订阅了一个名为 https rapidapi com rapidapi api movie database imdb alternative 的免费公共 API 其java代码片段如下 OkHttpClient client ne
  • 初始化空切片的正确方法

    要声明一个大小不固定的空切片 最好这样做 mySlice1 make int 0 or mySlice2 int 只是想知道哪一种是正确的方法 您给出的两个替代方案在语义上是相同的 但是使用make int 0 将导致内部调用运行时 mak
  • 带有 sourcemap 的 Webpack 无法解析生产模式下的变量

    我想使用 Webpack 为我们的生产构建生成源映射 我设法生成它 但是当我在调试器中的断点处停止时 变量未解析 我究竟做错了什么 如何生成一个源映射 让 chrome devtools 在我停止在调试器中的断点处时解析变量 这些是我的 w
  • find_library 或 link_directories 或 find_package?什么是更好的方法?错误 - 使用 cmake 链接库

    Given文件 usr lib gstreamer 0 10 libgstffmpeg so存在在 CMakeLists txt 中进行更改 方法一 find library find library GST FFMPEG 名称 gstff
  • 在数据库中存储数组

    我想知道在数据库中存储数组是否真的是好的做法 我倾向于使用json encode而不是serialize 但只是想知道这是否是一个好主意 如果没有 那么我可以做一些小的更改 然后用逗号将数组内爆 不 这是一种可怕的做法 请不要插入 CSV