如何使用预定项目列表保存用户的自定义输入
How to save user's custom input with a list of predetermined item
我有一个包含项目列表的数据库 (item
)
+----+-----------------------+-------+--------+-------+
| id | name | width | height | depth |
+----+-----------------------+-------+--------+-------+
| 1 | Some_toy | 35 | 28 | 30 |
| 2 | Pepperoni_pizza | 17 | 30 | 35 |
| 3 | Wood_table | 45 | 42 | 57 |
| 4 | Guitar | 26 | 45 | 75 |
| 5 | Awesome_TV | 80 | 35 | 10 |
+----+-----------------------+-------+--------+-------+
在我的网站上,用户可以 select 此列表中的项目来创建自己的项目列表。用户列表存储在以下table user_list_items
+----+--------------+---------+--------+
| id | id_user_list | id_item | number |
+----+--------------+---------+--------+
| 1 | 6 | 3 | 2 |
| 2 | 6 | 5 | 1 |
| 3 | 6 | 7 | 5 |
| 4 | 7 | 7 | 3 |
| 5 | 9 | 3 | 1 |
+----+--------------+---------+--------+
但是,因为我的列表不能包含世界上的所有项目,所以我想允许用户添加自定义项目。
我的问题是我不想在我的 table item
中存储用户自定义项目,因为这个 table 包含默认显示的项目。
但是,如果我不在我的 table item
中保存自定义项目,我仍然必须将它们保存在其他地方。所以我创建了另一个 table custom_item
,它是 item
的精确副本。
使用此解决方案,我在我的 table user_list_items
中添加了一个外键 id_custom_item
,它给出了以下
+----+--------------+---------+----------------+--------+
| id | id_user_list | id_item | id_custom_item | number |
+----+--------------+---------+----------------+--------+
| 1 | 6 | 3 | 0 | 2 |
| 2 | 6 | 0 | 25 | 1 |
| 3 | 6 | 7 | 0 | 5 |
| 4 | 7 | 7 | 0 | 3 |
| 5 | 9 | 3 | 0 | 1 |
+----+--------------+---------+----------------+--------+
现在我对 user_list_items
有疑问,因为可以 link 到 item
或 custom_item
,这似乎是一个非常糟糕的做法。
我的问题是,如何使用预先确定的项目列表保存用户的自定义输入?
抱歉,这个问题的表述不是很好,但我找不到任何其他方式来表达它。
如果反对在项目 table 中存储自定义项目只是默认显示内容,我会添加一个设置为 'Y' 或 'N' 的列table 并将该列添加到填充默认列表的查询的 WHERE 子句中,例如 AND default_flag = 'Y'
我有一个包含项目列表的数据库 (item
)
+----+-----------------------+-------+--------+-------+
| id | name | width | height | depth |
+----+-----------------------+-------+--------+-------+
| 1 | Some_toy | 35 | 28 | 30 |
| 2 | Pepperoni_pizza | 17 | 30 | 35 |
| 3 | Wood_table | 45 | 42 | 57 |
| 4 | Guitar | 26 | 45 | 75 |
| 5 | Awesome_TV | 80 | 35 | 10 |
+----+-----------------------+-------+--------+-------+
在我的网站上,用户可以 select 此列表中的项目来创建自己的项目列表。用户列表存储在以下table user_list_items
+----+--------------+---------+--------+
| id | id_user_list | id_item | number |
+----+--------------+---------+--------+
| 1 | 6 | 3 | 2 |
| 2 | 6 | 5 | 1 |
| 3 | 6 | 7 | 5 |
| 4 | 7 | 7 | 3 |
| 5 | 9 | 3 | 1 |
+----+--------------+---------+--------+
但是,因为我的列表不能包含世界上的所有项目,所以我想允许用户添加自定义项目。
我的问题是我不想在我的 table item
中存储用户自定义项目,因为这个 table 包含默认显示的项目。
但是,如果我不在我的 table item
中保存自定义项目,我仍然必须将它们保存在其他地方。所以我创建了另一个 table custom_item
,它是 item
的精确副本。
使用此解决方案,我在我的 table user_list_items
中添加了一个外键 id_custom_item
,它给出了以下
+----+--------------+---------+----------------+--------+
| id | id_user_list | id_item | id_custom_item | number |
+----+--------------+---------+----------------+--------+
| 1 | 6 | 3 | 0 | 2 |
| 2 | 6 | 0 | 25 | 1 |
| 3 | 6 | 7 | 0 | 5 |
| 4 | 7 | 7 | 0 | 3 |
| 5 | 9 | 3 | 0 | 1 |
+----+--------------+---------+----------------+--------+
现在我对 user_list_items
有疑问,因为可以 link 到 item
或 custom_item
,这似乎是一个非常糟糕的做法。
我的问题是,如何使用预先确定的项目列表保存用户的自定义输入?
抱歉,这个问题的表述不是很好,但我找不到任何其他方式来表达它。
如果反对在项目 table 中存储自定义项目只是默认显示内容,我会添加一个设置为 'Y' 或 'N' 的列table 并将该列添加到填充默认列表的查询的 WHERE 子句中,例如 AND default_flag = 'Y'