投票数据库设计

时间:2015-02-08 21:09:39

标签: database voting voting-system

我正在实施一项投票功能,允许用户投票选出自己喜欢的图片。他们只能投票3张图片。没有更多或更少。因此,我正在使用复选框对其进行验证。我需要将这些投票存储在我的数据库中。

这是我到目前为止所拥有的:

| voteID |名称| EMAILADDRESS | ICNo | imageID

(其中imageID是Images表的外键)

我还在学习数据库系统,我觉得这不是一个好的数据库设计,考虑到电子邮件地址和IC号等一些字段必须重复。

例如,

|voteID | name|   emailAddress     |   ICNo      |  imageID
   1      BG    email@example.com    G822A28A          10
   2      BG    email@example.com    G822A28A          11
   3      BG    email@example.com    G822A28A          12
   4      MO    email2@example.com   G111283Z          10 

1 个答案:

答案 0 :(得分:4)

你有三个"东西"在你的系统中 - 图像,人物和投票。

图像可以有多个投票(来自不同的人),一个人可以有多个投票(针对不同的图像)。

在图表中表示这一点的一种方法如下:

Object relationships

因此,您将一个人的信息存储在一个地方(人员表),将图像存储在一个地方(图像表),并将投票存储在一个地方。 "鸡脚"他们之间的关系表明,一个人可以有很多票,一张图像可以有很多票。 ("很多"意思是"不止一个")。