综合投票可能包括多个单项投票,综合投票和单项投票都可为评选活动。
综合投票表--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了。
第一次写文章,请大家多多指教,给些意见。