我对MYSQL还不熟悉,所以请尽可能广泛地回答你的问题。感谢。
为了学习机制和代码,我决定尝试制作目录。数据库将保留产品 ID,标题,(名称),内容,图像路径和缩略图路径。产品也应该是一个或多个类别的一部分,因此可以对其进行过滤。我有大约7个类别。
即使在阅读和搜索之后,也无法确定哪个是构建该批次的最佳选择。
一张有很多colums的桌子?每个类别的列和行中的1或0值?
信息的一个表和类别的表,也有1或0个值,并与第一个表中的父项链接。并将他们加在一起。
我真的不知道什么是最好或最容易构建,组织和使用。
答案 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)
);