gpt4 book ai didi

php - SQL数据存储

转载 作者:行者123 更新时间:2023-11-29 12:29:50 25 4
gpt4 key购买 nike

我有 MySQL 数据库,它以下面的方式存储数据:

 id   |   value  | 1       @value1          @value2          @value3 _________@value4__ 2       @value5          @value6 _________@value7__  3       @value8          @value9  

如果我需要从特定的“id”中提取“值”,我将继续执行以下步骤:

  • 选择我需要的“id”行
  • 使用 PHP 函数 explode("@",$value) 对存储在特定“id”中的值进行剪切,并从中创建一个数组。

所以我的问题是,以这种方式工作和存储数据是否有效?也许我应该改变存储方式(如下所示)并仅使用 SQL 查询来检索数据。

你会推荐什么?

 id   |   value  | 1       @value1  1       @value2  1       @value3 _1_______@value4__ 2       @value5  2       @value6 _2_______@value7__  3       @value8  3       @value9  

最佳答案

将您的架构更改为:

id | group | value
======================
1 | 1 | "Value 1"
2 | 1 | "Value 2"
3 | 1 | "Value 3"
4 | 2 | "Value 4"
5 | 2 | "Value 5"
6 | 3 | "Value 6"
7 | 3 | "Value 7"
8 | 3 | "Value 8"
...

这样,每一行都有一个唯一的 ID,如果您发现自己需要指向特定行,并且将使用标识符(在本例中为数字)对值进行分组,那么这非常有用。

现在您可以轻松选择属于特定组的所有值:

SELECT `value` FROM `tableName` WHERE `group` = 2

这将为您提供表格的这个子集:

id | group | value
======================
4 | 2 | "Value 4"
5 | 2 | "Value 5"

创建表的SQL是:

DROP TABLE IF EXISTS `tableName`;

CREATE TABLE `tableName` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`group` INT NOT NULL,
`value` VARCHAR(256) NOT NULL
);

您还应该阅读 relational model 的内容是,以及它是如何工作的。知道如何normalize your database是一个相关主题,了解它很有用。

关于php - SQL数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27730194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com