我已为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系统中查询会相当复杂。但是,我对图形数据库没有太多经验,并且想要了解如何对此进行建模。
答案 0 :(得分:1)
在制作数据库模型时,最好先从信息设计模型开始,然后将其转换为数据库模型。
在针对您的问题的信息设计模型中,选项将是民意调查的组成部分(因此,在Option
和{之间,UML类图将具有 组合 {1}}),投票将是用户和选项之间的关系/链接(因此UML类图将在Poll
和{{1}之间具有 *多对多关联其中的实例是投票)。此外,还有一个 三元关联 Option
- 代表 - 他的投票 - User
- 至 - User
,其实例是代表团。
由此,我得到以下数据库模型:
Poll
当然,我们必须添加 约束 ,投票中使用的投票数是代表团数加1。