我是数据库设计的初学者。我对一对一的关系有些困惑。
我有一个名为task_tbl的表,我希望用户对一项任务进行评分(评分将满分5分,即1至5星)。我对如何做有点紧张;我应该创建另一个名为rate_tbl的表,还是应该将其放在task_tbl的名为rate的列中?该任务在数据库中只能有1个等级,即1到5。
这是我的task_tbl:
CREATE TABLE `task` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(200) NOT NULL,
`description` VARCHAR(1000) NOT NULL,
`start_date` DATETIME NOT NULL,
`end_date` DATETIME NOT NULL,
`created_by` INT(11) NOT NULL,
PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=13;
您正在关联Task及其评分(我想您的意思是评分,而不是酒店的食物评分)。
因此,按照规范化,您应该制作另一个表,rating_table
该表的预定义值从0
到,10
因为等级介于0到10之间。
现在,您需要另一个tasks_ratings
具有task_id
andrating_id
和的表user_id
。
请参阅,将获取从0到10的等级,然后rating_table
从中将其显示给Web浏览器中的用户,他们的响应(他们给出的等级)将tasks_ratings
与user_id,task_id和rating_id一起存储在表中。
现在,如果你想计算平均评价使用avg()
从tasks_ratings
通过采取任务ID从任务表的表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句