Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 未知输入数的数据库设计_Mysql_Database - Fatal编程技术网

Mysql 未知输入数的数据库设计

Mysql 未知输入数的数据库设计,mysql,database,Mysql,Database,我试图在数据库中存储一些数据,但无法确定数据库应如何设计以实现最大生产率 用户可以选择表单中的条目数。然后这些条目需要保存在数据库中。但是,不知道用户需要多少条目,例如,它们可以是1或100 如何更好地保存这些数据 我想到的是使用userID在数据库中存储条目数,并将输入放入数组中,将其序列化并存储在数据库中。我可能会执行以下操作: +---------------+ | Table: users | +----+----------+ | id | username | +----+----

我试图在数据库中存储一些数据,但无法确定数据库应如何设计以实现最大生产率

用户可以选择表单中的条目数。然后这些条目需要保存在数据库中。但是,不知道用户需要多少条目,例如,它们可以是1或100

如何更好地保存这些数据


我想到的是使用userID在数据库中存储条目数,并将输入放入数组中,将其序列化并存储在数据库中。

我可能会执行以下操作:

+---------------+
| Table: users  |
+----+----------+
| id | username |
+----+----------+
|  1 | tanzeel  |
|  2 | john     |
+----+----------+

+-----------------------------------------------+
| Table: entries                                |
+----+---------+------------+-------------------+
| id | user_id | entry_name | single_entry_data |
+----+---------+------------+-------------------+
|  1 |       1 | prop1      | ################  |
|  2 |       1 | prop2      | ################  |
|  3 |       1 | prop3      | ################  |
|  4 |       2 | prop1      | ################  |
|  5 |       2 | prop2      | ################  |
|  6 |       1 | prop4      | ################  |
+----+---------+------------+-------------------+
entries
表存储与
user\u id
关联的每个用户的
n
条目,该id是表
用户的PK(主键)列
id
的FK(外键)引用。当您想要检索数据时,您可以按如下方式触发select查询以获取特定用户的条目

SELECT * FROM entries A
INNER JOIN users B
ON A.user_id = B.id
AND B.id = 1;

如果不同的输入字段类型有相同的选项,如文本描述,则应使用类似的方法

table       columns                  example values
-----       -------                  --------------
users       id, name, password       12, "Johnny", "afad13cf1941"
forms       id, user                 42, 12
inputs      id, form, type, options  6, 42, "checkbox", "Want newsletter?"
如果对不同的输入字段有不同的选项,例如只属于复选框的选中状态,请尝试以下操作。但在本例中,您必须为要提供的每种输入类型创建一个表,在本例中为
复选框
文本字段
图像

table       columns                  example values
-----       -------                  --------------
users       id, name, password       12, "Johnny", "afad13cf1941"
forms       id, user                 42, 12
inputs      form, type, input        42, "checkbox", 8

checkboxes  id, text, checked        8, "Want newsletter?", false
textfields  id, text                 9, "Welcome to that page"
images      id, size, caption        10, 720, "The Mona Lisa"
type
列告诉use在哪个表中可以从
input
列的id下找到输入字段的选项


请注意,在这两个示例中,每个名为
id
的列都是主键。在最后一个表中,
类型
输入
的组合将是主键。

可能是nosql数据库更适合您想要做的事情。-查一查


如果您想/必须使用mysql,并且需要能够搜索单个值,请按照Tanzeel和sharethis的方法进行操作。如果要获取给定用户和/或表单id的整个参数集,那么最好将序列化数据存储为varchar或文本字段。如果您选择序列化,请查看json是否符合您的要求。那么您就有很多工具来处理您的数据。

这个模型中的条目名称字段是什么?