mysql - 如何使用预定项目列表保存用户的自定义输入

标签 mysql sql database-design

我有一个数据库,其中包含项目列表 (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 |
+----+-----------------------+-------+--------+-------+

在我的网站上,用户可以选择此列表中的项目来创建自己的项目列表。用户列表存储在下表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 |
+----+--------------+---------+--------+

但是,因为我的列表无法包含世界上的所有项目,所以我希望允许用户添加自定义项目。

我的问题是,我不想将用户自定义项目存储在我的表 item 中,因为该表包含默认显示的项目。

但是,如果我不在表 item 中保存自定义项目,我仍然必须将它们保存在其他地方。因此,我创建了另一个表 custom_item,它是 item 的精确副本。 通过此解决方案,我在表 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 的问题,因为可以链接到 itemcustom_item,这似乎是一个非常糟糕的做法。

我的问题是,如何使用预定项目列表保存用户的自定义输入?
抱歉,这个问题的表述不太好,但我找不到任何其他方式来表达它。

最佳答案

如果反对在项目表中存储自定义项目只是默认显示内容,我会在表中添加一个设置为“Y”或“N”的列,并将该列添加到填充默认列表的查询,例如 AND default_flag = 'Y'

关于mysql - 如何使用预定项目列表保存用户的自定义输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30351335/

相关文章:

php - 我应该在 Laravel 4 应用程序中的哪里添加原始 SQL 查询?

php - mysql order by id desc 的奇怪行为

php - INSERT INTO 和主键、自增字段和默认值

java - 我如何在java中将整数值转换为字符串值

PHP Cookie 安全问题

sql - 如何为用户定义字段设计数据库?

mysql - 一起选择 MIN、MAX、AVG 和当前(最新插入 ID)值

python - SQL BETWEEN 命令不适用于大范围

mysql - 限制数据库级别的关联记录数

mysql - 大量定时数据记录的数据库设计 - 汽车跟踪系统