首页 > 解决方案 > 为产品添加不同的视频

问题描述

对于学校,我必须建立一个网上商店。我们有一个数据库,其中包含我们使用的产品及其详细信息。其中大部分是在 html 中完成的。到我想为产品添加视频的网站。我只从一些谷歌搜索中得到了这一点:

<video width="320" height="240" controls>
   <source src="movie.mp4" type="video/mp4">
   <source src="movie.ogg" type="video/ogg">
</video>

现在的问题是它适用于一个特定的视频。由于产品是从数据库中取出的,因此每个产品都没有特定的代码行。那么如何为数据库中的每个产品绑定不同的视频呢?

这是该网站现在的样子,红色位表示我想要视频的位置。

提前致谢!!

标签: htmlsqldatabase

解决方案


我正在使用 MySQL。

假设您有一个名为“product”的表,其中存储有关您的产品的信息。

1)如果您需要单个产品的单个视频(称为一对一关系),那么应该有一列存储视频的路径,无论是来自互联网还是在您的机器上。MySQL 语句如下所示:

CREATE TABLE `webshop`.`product` (
`product_id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(45) NOT NULL,
`description` VARCHAR(100) NOT NULL,
`video_path` VARCHAR(45) NOT NULL,
PRIMARY KEY (`product_id`));

为了得到产品使用:

SELECT * FROM product;

2)如果您的产品可能附加了多个视频(多对一关系),您将需要 3 个表格:一个用于产品:

CREATE TABLE `webshop`.`product` (
`product_id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(45) NOT NULL,
`description` VARCHAR(100) NOT NULL,
PRIMARY KEY (`product_id`));

一个用于路径:

CREATE TABLE `path` (
`path_id` int(11) NOT NULL AUTO_INCREMENT,
`video_path` varchar(45) DEFAULT NULL,
 PRIMARY KEY (`path_id`));

然后创建另一个数据库,它将包含产品的 id 和路径的 id。创建表语句应如下所示:

 CREATE TABLE `product_path` (
 `product_id` int(11) NOT NULL,
 `path_id` int(11) NOT NULL,
 PRIMARY KEY (`product_id`,`path_id`),
 KEY `fk_path_id_idx` (`path_id`),
 CONSTRAINT `fk_path_id` FOREIGN KEY (`path_id`) REFERENCES `path` 
 (`path_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
 CONSTRAINT `fk_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` 
 (`product_id`) ON DELETE CASCADE ON UPDATE CASCADE);

为了获得所有产品:

SELECT * FROM product 
INNER JOIN product_path ON product.product_id = product_path.product_id 
INNER JOIN path ON product_path.path_id = path.path_id;

推荐阅读