我正在创建一个 PHP 表单,以唯一的项目名称存储项目数据,然后将该数据存储到 MySQL 数据库中。
例如:
项目名称:Proj001
最大赛车速度(米/秒):80
但是,我希望能够添加项目的新版本,同时保留旧版本的项目数据。如果可能,我想创建一个选项,以便用户可以将项目版本指定为“默认”项目,以在用户使用搜索引擎查找项目时显示。他们可以使用其他方法切换搜索引擎上显示的默认项目。
例如:
项目名称:Proj001
最大赛车速度(米/秒):85
Proj001 已经存在!将此设置为默认值吗?是/否
(如果用户选择"is",则搜索 Proj001 时,最大赛车速度将返回 85。如果用户选择“否”,则搜索 Proj001 时,最大赛车速度将返回 80)。
是否可以使用 PHP/MySQL 执行类似的操作?我不是在寻找任何代码,而是在寻找如何使用该语言使其工作的可能概念。
最佳答案
MySQL 中没有任何内容表明一行需要唯一标识符。这样做当然是常见的做法,但绝不是必需的。
你绝对可以实现你的例子。显然,您需要一个 bool 字段 default
,只要用户输入值就可以更新它。如果有默认更新的结果提示,只需在收集用户输入时从 PHP 运行 SELECT
查询即可,否则只需添加它即可开始使用。
如果没有唯一标识符,您最常遇到的问题是更新行。让我们以您的示例为例,假设用户再次输入 80 英里/小时作为最大速度。如果添加该行,您现在将拥有两行,其中包含 Proj001
和 80
作为字段。 SQL 如何知道要更新哪一个?您始终可以在查询中添加 LIMIT 1
以仅更新 1 行,但这至少应该提供一些关于为什么常用唯一字段的见解。
关于php - MySQL在一个唯一名称下设置多个版本的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17687465/