【发布时间】:2017-09-25 16:29:44
【问题描述】:
我目前正在用 PHP 创建一个竞赛系统。对于数据库,我使用 MySQL。
当用户想要提交时,他可以选择两种类型的条目:
- 链接到程序
- 程序本身。
在我的网站上,用户还可以使用我在网站上提供的完整编码环境来创建程序。然后将这些程序存储到我的数据库中的表scripts 中,该表具有列
-
user(代表用户ID) -
script_id(代表脚本ID) -
name(代表程序名称) -
script(LongText代表程序本身的代码)
现在,如果用户准备提交,他可以决定他的提交是指向某个程序的链接还是他之前在我的网站上创建的程序。
如果他选择完整的程序,他必须从下拉列表中选择一个。
我的问题都是关于服务器端的。
当用户点击“提交”时,一个 JSON 格式的字符串,包含提交的 type(0 或 1)和 payload(包含链接或 @987654335 的长字符串@)。
现在在服务器端,我得到了这些信息,我想存储用户的提交。 现在是真正的问题:
如何存储这些信息,以便轻松访问提交的类型及其值(链接或完整源代码)?
我不想再次保存脚本的整个源代码,因为用户已经这样做了,它存储在表scripts中。
我想过这样的事情:
*---------------------------------*
| submission_type | value |
*---------------------------------*
| 0 | google.com |
*---------------------------------*
| 0 | stackoverf |
*---------------------------------*
| 1 | 3 |
*---------------------------------*
| 1 | 10 |
*---------------------------------*
但这会有点混乱,因为我不想在value 列中有一个字符串或一个int。
您认为存储这些未知类型数据的最佳方式是什么?
【问题讨论】:
-
StackOverflow 不是教程网站,也不是搜索引擎替代品。我们可以提供帮助,但首先编写代码是您的工作。先Put some efforts,然后解释清楚和MCV example。另请阅读 How to ask,如何使用 reward helpful answers 和 StackOverflow's Do and Don'ts。
-
@MarcinOrlowski 这不是我的第一个问题。我在这个问题上做错了什么?
-
@MarcinOrlowski 另外,这个问题与代码无关。这是关于数据库设计以及解决这个问题的最佳方法。
-
如果您在问题下方点击
close,那么对我而言,您的问题符合此处显示的最后两个原因之一。
标签: php mysql database-design relational-database