我有3个表格,分别是产品,用户和评论。我使用的关系是多对多。我的sql代码如下:
CREATE TABLE users (
id INT UNSIGNED AUTO_INCREMENT,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
fullname VARCHAR(255) NOT NULL,
phone VARCHAR(11) ,
address TINYTEXT,
create_at DATETIME DEFAULT CURRENT_TIMESTAMP,
update_at DATETIME,
PRIMARY KEY(id)
);
CREATE TABLE products (
id INT UNSIGNED AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
image TINYTEXT NOT NULL,
priceold DECIMAL(5,1) NOT NULL,
pricenew DECIMAL(5,1) NOT NULL,
code VARCHAR(20) NOT NULL,
description TINYTEXT ,
link_origin TINYTEXT,
date_release DATE,
developer VARCHAR(255),
link_trailer TINYTEXT,
create_at DATETIME DEFAULT CURRENT_TIMESTAMP,
update_at DATETIME,
PRIMARY KEY(id)
);
CREATE TABLE reviews(
user_id INT UNSIGNED ,
product_id INT UNSIGNED ,
rating FLOAT DEFAULT 0,
content TEXT NOT NULL,
create_at DATETIME DEFAULT CURRENT_TIMESTAMP,
update_at DATETIME,
FOREIGN KEY(user_id) REFERENCES users(id),
FOREIGN KEY(product_id) REFERENCES products(id),
PRIMARY KEY(user_id,product_id)
);
我已经通过ID获得了产品信息。我还可以获得该产品的所有评论。
$this->query('
SELECT r.*
FROM products AS p, reviews AS r
ON p.id = r.product_id
WHERE id = :id
');
$this->bind(':product_id',$product['id']);
$reviews = $this->single();
如何获取评论者的姓名?我使用PHP和MVC模型。我想在产品页面的详细信息下方显示注释及其所有者。哪一种是最佳方法。请帮助我