2015-02-08 110 views
1

我正在实施投票​​功能以允许用户为他们最喜欢的图像投票。他们只能投3张图片。没有更多或更少。因此,我使用复选框为它进行验证。我需要将这些选票存储在我的数据库中。用于投票的数据库设计

这是我到目前为止:

| voteID |名称| EMAILADDRESS | ICNo |图像标识

(其中图像标识是一个外键图像表)

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

例如,

|voteID | name| emailAddress  | ICNo  | imageID 
    1  BG [email protected] G822A28A   10 
    2  BG [email protected] G822A28A   11 
    3  BG [email protected] G822A28A   12 
    4  MO [email protected] G111283Z   10 
+0

你的感觉是正确的。 http://www.databaseprimer.com/pages/table-relationships/ – 2015-02-08 21:18:00

回答

4

您的系统三 “东西” - 图像,人员和选票。

图像可以有多个选票(来自不同的人),并且一个人可以有多个选票(针对不同的图像)。在图中表示此

的一种方法如下:

Object relationships

所以你存储有关人的信息在一个地方(Person表),约在一处图像(图像表)和投票在一个地方。他们之间的“鸡爪”关系表明,一个人可以有很多票,一个图像可以有很多票。 (“多”意思是“多于一个”)。