综合投票可能包括多个单项投票,综合投票和单项投票都可为评选活动。
综合投票表--colligate
序号
| 列名
| 数据类型
| 长度
| 主键
| 允许空
| 字段说明
|
1 | ColligateID | int | 4 | √ |
|
|
2 | Title | varchar | 100 |
| √ | 投票名称 |
3 | Note | varchar | 1000 |
| √ | 投票说明 |
4 | StartTime | datetime | 8 |
| √ | 投票开始时间 |
5 | EndTime | datetime | 8 |
| √ | 结束时间 |
6 | IsComment | bit | 1 |
| √ | 是否评论 |
7 | IsAnonym | bit | 1 |
| √ | 是否匿名 |
8 | TimeInterval | int | 4 |
| √ | 投票间隔时间 |
9 | IntervalType | varchar | 50 |
| √ | 投票间隔时间类型 |
单项投票表--Vote
序号
| 列名
| 数据类型
| 长度
| 主键
| 允许空
| 字段说明
|
1 | VoteID | int | 4 | √ |
|
|
2 | ModeID | int | 4 |
| √ | 所属综合投票id,不是综合投票是0 |
3 | Title | varchar | 100 |
| √ |
|
4 | Radio | int | 4 |
| √ | 1为单选,2为多选,3为评论 |
5 | StartTime | datetime | 8 |
| √ |
|
6 | EndTime | datetime | 8 |
| √ |
|
7 | VoteColumn | int | 4 |
| √ | 分几列显示 |
8 | MaxCount | int | 4 |
| √ | 多选时最多选几条 |
9 | IsComment | bit | 1 |
| √ |
|
10 | IsAnonym | bit | 1 |
| √ | 登录/匿名 |
11 | TimeInterval | int | 4 |
| √ | 两次投票时间间隔 |
12 | IntervalType | varchar | 50 |
| √ | 时间间隔日期格式 |
14 | IsImage | bit | 1 |
| √ | 是否是评选活动 |
在这两个表中出现了冗余的字段,如何合并或是重构好呢?迷惑ing...
选项表--Item
序号
| 列名
| 数据类型
| 长度
| 主键
| 允许空
| 字段说明
|
1 | ItemID | int | 4 | √ |
|
|
2 | VoteID | int | 4 |
| √ |
|
3 | Item | varchar | 200 |
| √ |
|
4 | ItemCount | int | 4 |
| √ |
|
5 | Images | varchar | 200 |
| √ |
|
在这个Item表中存在的一个问题是,每次投票或是评选的字段会变化,如何建立动态数据库呢?
留言表--Message
序号
| 列名
| 数据类型
| 主键
| 允许空
| 字段说明
|
1 | MessageID | int | √ |
|
|
2 | UserID | int |
| √ |
|
3 | VoteID | int |
| √ | 综合为ColligateID,单项为VoteID |
4 | Content | varchar |
| √ |
|
5 | LeaveTime | datetime |
| √ | 留言时间 |
6 | ColligateID | int |
| √ |
|
因留言表有时是对综合投票留言,得需要colligateID,有时是对单项投票留言,得需要voteID,这样会出现了用两个字段来标志投票ID。本来我想用GUID来表示主键,后来还是用int了。
第一次写文章,请大家多多指教,给些意见。