php - 数据库设计一对一关系

标签 php mysql database oracle database-design

我是数据库设计的初学者。我有点困惑 一对一关系。

我有一个名为 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;

最佳答案

您正在关联任务及其评分(我想您指的是评分,而不是酒店的食物费率)。

因此,根据规范化,您应该制作另一个表,rating_table,它将具有从 010 的预定义值,因为评级将在在 0 到 10 之间。

现在您需要另一个表 tasks_ratings,它将包含 task_idrating_id 以及 user_id

看,从 0 到 10 的评分将从 rating_table 中获取,该表将在网络浏览器中显示给用户,他们的 Response(他们给出的评分)将存储在 tasks_ratings 包含 user_id、task_id 和 rating_id 的表。

现在,如果您想计算平均评分,请使用 tasks_ratings 表中的 avg(),方法是从任务表中获取任务 ID。

关于php - 数据库设计一对一关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30413144/

相关文章:

php - 您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册

mysql - 在MySQL数据库中获取链表

sql - 如何对多列进行 INNER JOIN

database - 如何查找文档,哪个字段是特定字符串的子字符串?

mysql - sql简单初学者操作

php - 无法更新mysql中的特定字段

php - 使用 PHP 的 JavaScript 表单验证不发送电子邮件

php搜索一个mysql字符串结果

MySQL Max 字段错误

javascript - 使用json用php解析xml