当您将类别级别存储在单独的表格中时,我正在寻找列出和浏览类别和子类别及其记录(分类广告)的解决方案。在过去,我曾使用邻接模型,但我现在必须坚持这个数据库设置,这对我来说是新的。我正在使用php和mysql。
该网站是一个以常见方式构建的分类广告网站:它在其主页上有主要类别列表,当您点击其中一个类别链接时,只会列出其子类别以及属于此类别的广告,因此在各个层面上。
我在以下方面有点困惑:
你是如何构建的 浏览时的类别链接 类别,以便脚本知道它应该从哪个表中选择类别,如果我考虑下面的 mysql结构?我需要分开吗? 我访问的每个类别级别的参数 例如:“mysite.com/?cat2=4”时 访问cat2中的类别“4” 表和“mysite.com/?cat3=9”时 访问cat3表中的类别“9” 为了识别类别 水平?如果单独的参数不 需要的话,php和mysql怎么样? 告诉您必须选择哪个表格 来自?
大多数人 重要的是在这种情况下,是什么 构建SEO的最佳方式 友情链接? mysql将如何知道 哪个表选择类别 从?我想用得最多 最简单的解决方案是可能的 喜欢: mysite.com/electronics/television/sony。 据我所知,我必须包括 至少是cat_id 在链接的某个地方......我把它放在哪里?我是否还必须包括级别数?至 更复杂的是类别 姓名是外语的 重音人物(虽然我 创造了一个改变的功能 重音人物加入拉丁文 在生成类别时动态 链接)所以我认为最好 按他们的ID选择它们。
示例mysql如何选择外观 就像选择孩子一样 某类别的类别?
如何构建面包屑 导航
MYSQL结构:
表“cat1”(主要类别):
cat1_id | cat1_name
表“cat2”(子类别):
cat2_id | cat1_id | cat2_name
表“cat3”(subsubcategory):
cat3_id | cat2_id | cat3_name
表“广告”:
ad_id | cat1_id | cat2_id | cat3_id | ad_title | ad_description
感谢并感谢抱歉。
答案 0 :(得分:1)
我最喜欢的类别(和标记)网址模式:
http://mysite.com/articles/brains+zombies+legs+frogs
+
符号适用于标签,对蜘蛛(和SEO)友好。使用类别的文本对于蜘蛛和人类都很重要,因为它是有意义的。
至于SQL,我建议2个表用于任何带有类别或标签的表:
Categories (id, name, description)
CategoryRelationships (catID, thingID)
对于任何给定的事物,您通过CategoryRelationships加入类别到事物。例如:
SELECT * FROM Things t
JOIN CategoryRelationships ON thingID = t.ID
JOIN Categories c ON catID = c.CatID
结果将是一个事物及其类别的列表,其中每个类别只有一个定义,以及通过关系表的一组链接。
至于面包屑,它们的问题略有不同。面包屑要么:
根据您所针对的面包屑的类型,您采取不同的方法。对于简单的网站层次结构集合,您可以简单地解析网址并foreach
对这些网段进行分析:
http://mysite.com/people/zombies/brains/brains
解析URI将导致:
people, zombies, brains, brains
您将为其生成指向每个细分的链接。