数据库
# 数据库表 —— WebML
## 基本数据库表
### UserInfo(用户信息)
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|uid|int|-|用户的标志id|主键|非空|
|username|vchar(50)|随机生成|用户昵称|允许重复|非空|
|password|vchar(50)|-|密码|存储加密后的信息|非空|
|gender|tinyint(1)|0-undefined|1-female,2-male|选择性值|非空|
|avatarUrl|vchar(255)|-|用户头像url||可空|
|profession||-|身份/职业||可空|
|email|vchar(50)|-|用户的邮箱|unique|非空|
|phone|int(11)|-|用户手机号码|unique|可空|
### UserMessage(用户消息)
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|mid|int|-|消息标志id|主键|非空|
|uid|int|-|用户的标志id|主键+外键|非空|
|from|vchar(50)||消息的发送方|用户或者平台|可空|
|title|vchar(255)|-|消息标题|示例:成员加入申请|可空|
|time|Datetime|-|消息发送时间||非空|
|read|tinyint(1)|0-未读|消息是否已读|1-已读|非空|
|pid|int|-|通知所属的项目|可能为空|可空|
|did|int|-|通知所属的数据集|当pid不为空时为空;除此也可能为空|可空|
|content|longtext|-|消息的详情||可空|
### Project(项目)
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|pid|int|按序生成|项目id|主键|非空|
|title|vchar(255)|-|项目的标题||非空|
|description|longtext|-|项目的简介||可空|
|createdTime|date||项目的开始时间||非空|
|tag|vchar(255)|-|项目的所有标签|标签之间用#间隔|可空|
|status|tinyint(1)|1-进行中|项目状态|2-已结束|非空|
|creator|int|-|项目创建者|foreign key|可空|
### ProjectAchievement(项目成果)
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|pid|int|按序生成|项目id|foreign key|非空|
|aid|int|按序生成|成果id|主键|非空|
|AchievementType|tinyint(1)|1-论文结果|成果类型|2-竞赛;3-专利|非空|
### Patent(专利)
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|aid|int|按序生成|成果id|主键+foreign key|非空|
|name|vchar(100)|-|专利名称||非空|
|type|tinyint(1)|-|专利类型|1-发明专利;2-实用新型|非空|
|requestDate|Date|today|申请日期||非空|
|requestNo|vchar(50)|申请编号|||非空|
|digest|longtext|-|专利摘要||非空|
|inventor|vchar(50)|-|发明人|多个人用逗号间隔存储|非空|
|releaseDate|Date|now|专利公开日||非空|
|status|tinyint(1)|0-申请中|专利状态|1-授权未下证;2-已下证|非空|
### Paper(论文)
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|aid|int|按序生成|成果id|主键+foreign key|非空|
|name|vchar(100)|-|论文标题||非空|
|type|tinyint(1)|-|论文类型|0-中文;1-英文|非空|
|receiver|vchar(50)|-|论文发表的会议、期刊或杂志||非空|
|digest|longtext|-|论文的摘要||非空|
|firstWriter|vchar(10)|-|第一作者||非空|
|commuWriter|vchar(10)|-|通讯作者||可空|
|otherWriters|vchar(50)|-|其他作者|多个作者用逗号间隔存储|可空|
|publishDate|Date|-|发表日期||非空|
|paperLink|vchar(500)|-|论文链接||可空|
|infection|float|-|影响因子||可空|
|institutions|vchar|-|第一发表单位||可空|
|DOI|vchar(500)|-|||可空|
|FundNo|vchar(150)||基金号||可空|
|background|longtext|-|研究的背景和目的||非空|
### Competition(竞赛)
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|aid|int|按序生成|成果id|主键+foreign key|非空|
|name|vchar(50)|-|竞赛全称||非空|
|level|tinyint(1)|-|竞赛级别|1-校级;2-市级;3-省级;4-国家级;5-世界级|非空|
|grade|tinyint(1)|-|奖项类型|1-金奖/冠军;2-银奖/亚军;3-铜奖/季军;4-优胜奖|非空|
|teamMem|vchar(50)|-|参与人员|按照重要程度排序,多名成员用逗号间隔|非空|
|instructor|vchar(50)|-|指导老师||可空|
### Dataset(数据集)
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|did|int|按序生成|数据集的标志id|主键|非空|
|title|char(255)||数据集标题||非空|
|description|longtext||数据集描述||可空|
|createdTime|date|auto|创建时间||非空|
|uid|int||上传者的id|外键|非空|
|size|float||所有数据集大小(以GB为单位)||非空|
|type|vchar(10)|-|数据集的数据类型|如zip|非空|
|tag|vchar(255)|''|数据标签(以#间隔)|示例:#工业数据集#目标检测|可空|
|path|vchar(500)|-|数据集在服务器上的路径||非空|
|imageType|vchar(10)|-|数据集中图片的数据类型|如png、nii|非空|
|containedAnno|tinyint(1)|1-已经标注|是否标注|0-没有标注(选择值)|非空|
|imageNum|int|-|图片数量|用户手动添加|可空|
### Model(模型(结构))——弱开发模式
|属性|类型|默认值|说明|备注|空值|
|-|-|-|-|-|-|
|pid|int|-|项目id|主键+foreign key|非空|
|mid|int|-|模型id|主键|非空|
|uid|int|-|上传的用户|主键|非空|
|updateTime|-|上传的时间|主键|非空|
|name|vchar(20)|-|模型名称||非空|
|description|longtext|-|模型简介||可空|
|modelFile|vchar(500)|-|模型文件的路径||可空|
## 关系数据库表
### UserProject(用户参与的项目)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|uid|int|-|用户id|主键+foreign key|
|pid|int|-|项目id|主键+foreign key|
### UserDataset(用户上传的数据集)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|uid|int|-|用户的标志id|主键+foreign key|
|did|int|-|数据集id|主键+foreign key|
### UserFavDataset(用户收藏的数据集)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|uid|int|-|用户的标志id|主键+foreign key|
|did|int|-|数据集id|主键+foreign key|
### ProjectRecord(项目操作历史)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|pid|int|-|项目id|主键+foreign key|
|uid|int|-|用户的标志id|主键+foreign key|
|operation|tinyint(1)|-|操作动作|1-修改;2-删除(移除)|
|ouid|int|-|被添加或者移除团队,或者被修改权限的成员id|可能为空|
|time|Datetime|now|操作发生时间||
### ProjectCode(项目代码)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|pid|int|-|项目id|主键+foreign key|
|uid|int|-|上传的标志id|主键+foreign key|
|path|vchar(500)|-|权重在服务器上的路径||
|updatedTime|Datetime|now|更新时间||
### ProjectTeam(项目成员)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|pid|int|-|项目id|主键+foreign key|
|uid|int|-|用户id|主键+foreign key|
|identity|tinyint(1)|1-观察者/合作单位人员|用户的身份|2-开发者/编辑者;3-管理员。创建者为默认管理员,管理员有一切权限但不包括删除和清空项目|
|manageDataset|tinyint(1)|0-无权限(仅查看和下载)|团队成员是否有管理数据集的权限|1-可以上传,2-可以删除|
### RequestList(项目请求加入列表)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|pid|int|-|项目id|主键+foreign key|
|uid|int|-|申请者id|主键+foreign key|
### ProjectDataset(项目涉及的数据集)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|pid|int|-|项目id|主键+foreign key|
|did|int|-|数据集id|主键+foreign key|
### ModelEnv(模型环境)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|mid|int|-|用户的标志id|主键+foreign key|
|env|vchar(50)|'env'+mid|环境名称|需要后端设置默认值|
|path|vchar(500)|-|环境在服务器上的路径||
### ModelWeight(模型权重)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|mid|int|-|用户的标志id|主键+foreign key|
|uid|int|-|上传者id|主键+foreign key|
|name|vchar(200)|-|模型权重的名称||
|updateTime|datetime|-|更新时间||
|path|vchar(500)|-|权重在服务器上的路径||
### DatasetSample(数据集的示例图片)
|属性|类型|默认值|说明|备注|
|-|-|-|-|-|
|did|int|-|数据集的标志id|主键+foreign key|
|sampleImg|vchar(500)|-|示例图片的url|主键|
|imageSize|int|-|图片的尺寸大小|单位为KB|