mysql结构化类别

时间:2013-07-10 11:50:05

标签: mysql structure categories

我对MYSQL还不熟悉,所以请尽可能广泛地回答你的问题。感谢。

为了学习机制和代码,我决定尝试制作目录。数据库将保留产品 ID,标题,(名称),内容,图像路径和缩略图路径。产品也应该是一个或多个类别的一部分,因此可以对其进行过滤。我有大约7个类别

即使在阅读和搜索之后,也无法确定哪个是构建该批次的最佳选择。

  • 一张有很多colums的桌子?每个类别的列和行中的1或0值?

  • 信息的一个表和类别的表,也有1或0个值,并与第一个表中的父项链接。并将他们加在一起。

我真的不知道什么是最好或最容易构建,组织和使用。

1 个答案:

答案 0 :(得分:1)

你应该从不使用任何具有可变数量的的解决方案(即您的第一个解决方案)。不保证产品最多有7个类别,也不能保证产品甚至只有一个类别。您最终会经常ALTER这个表,并且没有简单的方法来选择类别而不指定多个列。

第二个解决方案要好得多 - Categories的表格,每个行都有一个标识符和类别名称。那么您只需要另一个具有(产品标识符,类别标识符)的表格,您可以根据需要将产品链接到任意数量的类别。

CREATE TABLE Categories (
    catID int unsigned not null auto_increment primary key,
    catName varchar(255),
    unique key (catName)
);
CREATE TABLE ProductCategories (
    pcID int unsigned not null auto_increment primary key,
    proID int unsigned,
    catID int unsigned,
    unique key (proID, catID),
    foreign key (proID) references Products (id),
    foreign key (catID) references Categories (catID)
);