我的“插槽”在MySQL中是否需要一个单独的行?

时间:2015-07-26 04:34:37

标签: mysql

首先,我正在制作一个小抽奖网站。我现在有一个方形按钮网格(全部分配了一个数字),我希望能够切换到我想要的数量,然后将该信息发送到我的数据库,这些方块被“采取”。

我是否需要为每个方格分别设置一行?或者有更简单的方法吗?

2 个答案:

答案 0 :(得分:0)

是。我会为每个数字创建一个单独的记录。我还创建了第二列,表明他们是否被选中使用0和1。 (例如,如果有,则为1;如果没有,则为0)。您可以通过php使用SQL查询语句来更新这些值。

答案 1 :(得分:0)

如果您只想在单击按钮时查询数据库而不是每次切换正方形时都要查询数据库,那么为每个数字创建单独的记录将会非常昂贵。有更优雅的方法来实现相同的结果。

我建议使用自动增量ID的主键为个人播放抽奖创建记录,以便您可以轻松识别某个人。每当一个人翻转方块并点击 提交 时,将通过php触发查询,该查询将携带该人输入的值,其形式为0和1 。例如,如果您有9个方格,则用户输入将类似于 101011001 。您现在可以以<的形式保存记录。 userid,raffleentry> 。这种结构将使您的查询系统非常容易存储值以及确定谁赢得抽奖。

注意:你也可以做一些厚颜无耻的东西,并通过将抽奖条目解释为二进制表示来将抽奖中心保存为十进制值。因此,您可以将条目保存为 345 ,而不是 101011001

编辑:在评论中回答OP的问题 我的用户有一个主键,但我一次至少有5个抽奖活动。我应该制作5种不同的raffleentry柱吗?像raffleentry1,raffleentry2等

你可以做到这一点。但这里再次提出了一个更优雅的解决方案。只制作一个名为 raffleentrynumber 的列(整数),这将取值1-5。现在,不是仅在userid上创建主键,而是创建一个复合(userid,raffleentrynumber)。这将保留主键完整性约束并使表更清晰

您的表格看起来像

USER_ID RAFFLEENTRYNUMBER TICKET
1       1                 101010101
1       2                 111100001
1       3                 000000000     
1       4                 111111111
1       5                 010101010
2       1                 000011110
2       2                 011110011