Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP:Khái niệm hệ thống xếp hạng sao?

đây là một ví dụ mysql rất đơn giản:

drop table if exists image;
create table image
(
image_id int unsigned not null auto_increment primary key,
caption varchar(255) not null,
num_votes int unsigned not null default 0,
total_score int unsigned not null default 0,
rating decimal(8,2) not null default 0
)
engine = innodb;

drop table if exists image_vote;
create table image_vote
(
image_id int unsigned not null,
user_id int unsigned not null,
score tinyint unsigned not null default 0,
primary key (image_id, user_id)
)
engine=innodb;

delimiter #

create trigger image_vote_after_ins_trig after insert on image_vote
for each row
begin
 update image set 
    num_votes = num_votes + 1,
    total_score = total_score + new.score,
    rating = total_score / num_votes  
 where 
    image_id = new.image_id;
end#

delimiter ;

insert into image (caption) values ('image 1'),('image 2'), ('image 3');

insert into image_vote (image_id, user_id, score) values
(1,1,5),(1,2,4),(1,3,3),(1,4,2),(1,5,1),
(2,1,2),(2,2,1),(2,3,4),
(3,1,4),(3,5,2);

select * from image;
select * from image_vote;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để có được mức trung bình với thứ tựBy Desc trong Laravel 5

  2. MySQL:Tìm các hàng không tham gia vào mối quan hệ

  3. Cân bằng tải cơ sở dữ liệu-Aware:Cách chuyển từ HAProxy sang ProxySQL

  4. Làm cách nào để lưu dữ liệu phiên PHP vào cơ sở dữ liệu thay vì trong hệ thống tệp?

  5. Cập nhật trường khi không có giá trị