最近,幼儿园经常弄一些接龙方面的活动,虽然活动很简单,但在实际操作过程中,经常会出现提交冲突,例如,当接龙进行到第20个时,有A和B两位小朋友妈妈都认为自己是第21个,在复制了第20个的内容把自己写成21个提交的时候,问题出现了,A和B冲突了,后面的人无论是把A还是把B作为第21个,都会漏掉一个,这仅仅是两个人冲突的情况,实际上,同时发生冲突也可能是三个人、四个人乃至更多。
其实,这是比较简单的程序设计。首先我们需要有个表头,用来说明这次接龙的目的,后面就是需要把每个孩子的名字存起来,家长接龙实际上是用孩子的名字接龙,然后按照报名的先后顺序显示出来。
程序需要用到三个表,一个表用来存储用户,也就是将家长的微信与孩子的名字关联,一个表用来存储接龙的主题,也就是接龙的一些要求和文字性质的说明。第三个表用来存储接龙报名的先后顺序,这里第三个表里面需要有个外键来关联第二个表,证明这是接龙的哪个主题的。这样就形成了以人物——接龙主题——接龙报名表为主线的一个逻辑关系。
经验之谈在设计表时,有时候按照第三范式的设计思路,反而会把简单的东西搞的复杂,不是说遵循第三范式错,但不遵循的话在调用起来时可能更简单化。存储userID时把userName也存储进去,虽然多这一个字段,但在查询的时候可以少写很多代码。

