嗨我正在设计一个基于审查的数据库设计。我在这部分有问题 如何检查两个用户是否在社交旅行中对彼此进行了评论?就像我们在工作完成时有一个审查系统,当工作完成时,雇主和自由职业者都可以互相提供评论就像我想在这里实施,如果雇主没有给予自由职业者审查,然后他会显示审查屏幕对自由职业者的工作,反之亦然。 同样是在这里对我的应用程序不同的是在我的应用程序是一趟数据库设计审查系统反对像使用php mysql上班旅行
我有一个行程表,随身携带申请表,项目和回顾在设计表
1- Trip table will have trips of users
2- Registered users can requests items on a trip
3-When the registered user go to the other user created trip page then he can send the request to user against that trip to carry an item for him .
then an entry will be inserted in a carry_request table by sender_id which has requested the item and receiver id the user which has received the requests.
现在我有问题审查表 我如何才能决定哪个用户给其他用户审查,哪些还没有给予审查 我们还将在审查表中对每个carry_request进行审查2项,因为对1个进位请求我们将有2个审阅来自发件人和来自接收器。
这里是我的查询
select i.id as item_id,t.id as trip_id,us.id as sender_user_id,ur.fname as receiver_fname
from carry_requests cr
INNER JOIN users us on cr.sender_id = us.id
INNER JOIN users ur on cr.receiver_id = ur.id
INNER JOIN trips t on cr.trip_id = t.id
INNER JOIN items i on cr.item_id = i.id
where cr.sender_id = 24;
与此查询我得到的所有记录针对该用户所有被罚款,直到我必须发现哪些发送者并没有给予审查,以接收器或接收器没有给出审查让发件人在屏幕上向他们展示留下评论按钮。 这里是我的carry_requests表
CREATE TABLE IF NOT EXISTS `carry_requests` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sender_id` int(11) NOT NULL,
`receiver_id` int(11) NOT NULL,
`trip_id` int(11) NOT NULL DEFAULT '0',
`item_id` int(11) NOT NULL,
`date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`is_sender_reviwed` int(11) NOT NULL DEFAULT '0',
`is_receiver_reviwed` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
CREATE TABLE `trips` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`uid` INT(11) NOT NULL,
`from_location` VARCHAR(255) NOT NULL,
`to_location` VARCHAR(255) NOT NULL,
`departDTTM` DATE NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`status` int(11) NOT NULL DEFAULT '0',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
审查表具有
CREATE TABLE `reviews` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`trip_id` INT(11) NOT NULL,
`reviewer_id` INT(11) NOT NULL DEFAULT '0', which has given the review
`user_id` INT(11) NOT NULL DEFAULT '0', to whom review was given
`rating` INT(11) NOT NULL DEFAULT '0',
`review` TEXT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
您正在查看的是'LEFT JOIN' – cmorrissey
@cmorrissey如果它们在评论表中是两行,那么左连接将返回2条记录,但我只想要一条记录 – user5184398
@ user5184398,什么是reviewer_id和sender_id? – ZeJur