我正在使用 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;