在图形数据库中对投票轮询建模

时间:2015-03-15 17:33:51

标签: database database-design data-modeling graph-databases

我已为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系统中查询会相当复杂。但是,我对图形数据库没有太多经验,并且想要了解如何对此进行建模。

1 个答案:

答案 0 :(得分:1)

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

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

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

Poll

当然,我们必须添加 约束 ,投票中使用的投票数是代表团数加1。