gpt4 book ai didi

php - MYSQL 将输入值存储在一行或多行中

转载 作者:行者123 更新时间:2023-11-29 08:58:19 33 4
gpt4 key购买 nike

我正在使用 PHP 和 MySQL,并且我对数据库设计不太有经验。我知道规范化的基础知识,但是我的问题是关于从我拥有的特定表单中存储值。

好的,所以我的相关页面的设置方式是,有可以动态添加或删除的文本框。如果用户按下“+”或“-”按钮,则会添加或删除另一个文本框。

无论如何,当我通过 $_POST 提取文本框值时,它是一个数组,然后使用 implode() 将其转换为字符串,例如:用户输入“hello”“world”“bye”“world”,implode将其转换为以下字符串“hello,world,bye,world”。

我的问题是,将这个字符串“hello,world,bye,world”作为 1 个条目存储在 1 行中更好,还是将该字符串分成 4 个单独的字符串并将其存储在 4 个不同的行中更好?每个文本框将包含问题/评论,因此它们可能很长,而且很可能不像我给出的示例那样只有 1 个单词。

我问这个问题的原因是因为所有这些输入都将在同一页面上使用,因此它们都可以共享一个唯一的 ID。我只需查询一次,而不是多次查询。

最佳答案

它们应该单独存储,因为它们是一种数据的单独示例。

您的表格将是(例如)comments,每一行应该是一条评论,因此一行代表 hello,一行代表 world > 等

您还可以将页面 ID 与评论一起存储,因此您的表格将如下所示(请注意,您通常还会有一个用于评论 ID 的 id 字段。我省略了为了简洁起见):

|--------------|---------|
| comment | page_id |
|--------------|---------|
| hello | 1 |
| world | 1 |
| bye | 2 |
|--------------|---------|

然后你仍然可以在page_id上​​搜索,但是你的数据在逻辑上是分开的,如果你愿意的话你可以在具体的评论上搜索。

SELECT * FROM comments WHERE page_id = 1 -- 2 results

您还可以非常轻松地执行诸如按字母顺序或按时间(使用新列)排序之类的操作。

|--------------|---------|------------|
| comment | page_id | time_made |
|--------------|---------|------------|
| hello | 1 | 1234567890 |
| world | 1 | 2356480546 |
| bye | 2 | 5168161543 |
|--------------|---------|------------|

SELECT * FROM comments WHERE page_id = 1 ORDER BY time_made DESC -- most recent first

关于php - MYSQL 将输入值存储在一行或多行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321764/

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