在图形数据库中对投票投票进行建模



我已经为RDBMS系统建模了一个投票投票。该结构比传统的投票民意调查要复杂一些,因为用户可以选择投票支持民意调查中的某个选项,也可以将他们的投票传递给其他用户进行给定的民意调查。

我的结构看起来像这样:

Polls
id | title
----------
1  | Who should be president
Options
id | poll_id | title
--------------------
1  | 1       | Obama
2  | 1       | Bush
Vote
id | poll_id | user_id | vote_type | vote_id
--------------------------------------------
1  | 1       | 1       | option    | 1
2  | 1       | 2       | user      | 1

在这种情况下,选项 1 将获得 2 票,因为用户 2 将投票投给了投票给选项 1 的用户 1。

我意识到,如果我想可视化选票在用户之间的移动方式,那么在RDBMS系统中查询的数据将相当复杂。但是,我对图形数据库没有太多经验,并且想要一些有关如何对此进行建模的提示。

在制作数据库模型时,最好从信息设计模型开始,然后将其转换为数据库模型。

在问题的信息设计模型中,选项将是民意调查的组成部分(因此UML类图将在OptionPoll之间具有组合),而投票将是用户和选项之间的关系/链接(因此UML类图将在OptionUser之间具有*多对多关联,其实例是投票)。此外,还有一个三元协会User代表投票PollUser,其实例是代表团。

由此,我得到以下数据库模型:

Poll( id, question)
Option( poll_id, option_sequence_no, possible_vote)
Vote( user_id, poll_id, option_sequence_no, nmr_of_votes)
Delegation( user_id, poll_id, delegate_id)

当然,我们必须增加一个约束,即在投票中使用票数是代表团数加1。

最新更新