2011-01-19 61 views
3

当您将类别级别存储在单独的表格中时,我正在寻找列出和浏览类别和子类别及其记录(分类广告)的解决方案。在过去,我曾与邻接模型一起工作,但现在我必须坚持这个数据库设置,这对我来说是新的。我使用的是PHP和MySQL。选择和浏览类别和子类别存储在单独的表格

该网站是一个分类广告网站,它构建了一种常见的方式:它在主页上有主要类别列表,当您点击其中一个类别链接,然后只列出其子类别和属于该类别的广告,以及如此,在每个级别。

我有点在以下几个方面困惑:

  1. 你如何构建 的分类链接,以便浏览 类别时脚本知道哪些表应该选择,如果我的类别考虑下面的 mysql结构?我是否需要单独 参数在每一个类别级别我访问 例如像:“mysite.com/?cat2=4”当 “4”在CAT2 表和“mysite.com/?cat3=9”的时候访问类别 访问Cat3表中的类别“9” 以便确定类别 的级别?如果单独的参数不是 需要的话,那么php和mysql怎么可以告诉哪个表你必须从 中选择哪些类别?

  2. 而且最重要的 在这种情况下,什么是 构建SEO 友情链接的最佳方式?那么mysql将如何知道 哪个表从 中选择类别?我想用最简单的解决方案 ,如: mysite.com/electronics/television/sony。 据我所知,我必须在链接的某个地方至少包含 cat_id ...我在哪里放置它?我还必须包括关卡的数量吗?为了 更复杂的类别 名外语与 重音的字符(虽然我 创建,改变 重音字母到拉丁字母的人 在飞行中产生时类别 链接的功能),所以我认为这是最好的 通过他们的ID选择他们。

  3. 如何选择样本mysql看起来 就像选择某个类别的子类 类别?

  4. 如何构建面包屑导航 导航?

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

感谢,并为长期职位对不起。

回答

1

我最喜欢的类别(和标签)模式网址:

http://mysite.com/articles/brains+zombies+legs+frogs 

+符号用于标记好的,友好的蜘蛛(和搜索引擎优化)。使用类别的文本对于蜘蛛和人类都很重要,因为它是有意义的。

对于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 

结果将是物联网的名单和他们的类别,在这里你有每个类别只有一个定义,和一堆链接,通过关系表的类别。

至于面包屑,他们是一个稍微不同的问题。面包屑之一:

  • 通过您的网站层次结构提供导航,或
  • 帮助用户原路

取决于你的目标在面包屑的类型,采取不同的方法。对于一个简单的网站层级设定的面包屑,你可以简单地解析了该组段的URL和foreach

http://mysite.com/people/zombies/brains/brains 

解析URI会导致:

people, zombies, brains, brains 

对于您将生成的链接到每个细分市场。

+0

谢谢,但正如我写的我必须使用上述的MySQL结构。 – komlos 2011-01-19 20:03:08