投票数据库设计

Eno*_*yne 2 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 
Run Code Online (Sandbox Code Playgroud)

Don*_*lle 5

您的系统中有三个“事物”-图像,人物和选票。

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

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

对象关系

因此,您可以将一个人的信息存储在一个位置(“人”表),关于一个图像的信息存储在一个位置(“图像”表),而投票信息则存储在一个位置。它们之间的“鸡脚”关系表明一个人可以有很多票,而一张图像可以有很多票。(“许多”的意思是“多个”)。