当您将类别级别存储在单独的表中时,我正在寻找一种解决方案来列出和浏览类别和子类别及其记录(分类广告)。过去我使用过邻接模型,但现在我必须坚持使用这个数据库设置,这对我来说是新的。我正在使用 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 select 看起来如何 那样选择 child 某个类别的类别?
如何构建面包屑 导航?
MYSQL 结构:
表“cat1”(主要类别):
cat1_id | cat1_name
表“cat2”(子类别):
cat2_id | cat1_id | cat2_name
表“cat3”(子类别):
cat3_id | cat2_id | cat3_name
表“广告”:
ad_id | cat1_id | cat2_id | cat3_id |广告标题 |广告描述
感谢并抱歉发了这么长的帖子。
最佳答案
我最喜欢的类别(和标签)URL 模式:
http://mysite.com/articles/brains+zombies+legs+frogs
+
符号对标签很好,对蜘蛛(和 SEO)也很友好。使用类别文本对蜘蛛和人类都很重要,因为它很有意义。
至于 SQL,我建议为任何带有类别或标签的内容使用 2 个表:
Categories (id, name, description)
CategoryRelationships (catID, thingID)
对于任何给定的事物,您都可以通过类别关系将类别加入事物。例如:
SELECT * FROM Things t
JOIN CategoryRelationships ON thingID = t.ID
JOIN Categories c ON catID = c.CatID
结果将是事物及其类别的列表,其中每个类别只有一个定义,以及通过关系表指向类别的一堆链接。
至于面包屑,它们是一个稍微不同的问题。面包屑:
- 在您的站点层次结构中提供导航,或者
- 帮助用户追溯他们的步骤
根据您瞄准的面包屑导航类型,您可以采用不同的方法。对于一个简单的站点层次结构的面包屑集,您可以简单地解析 URL 和 foreach
在这组段上:
http://mysite.com/people/zombies/brains/brains
解析 URI 会导致:
people, zombies, brains, brains
您将为其生成指向每个分割的链接。
关于php - 选择和浏览存储在单独表中的类别和子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739512/