【问题标题】:List of ID's as field in rowID 列表作为行中的字段
【发布时间】:2015-03-07 10:33:06
【问题描述】:

我有两张表:一张很大,展开后是table_news,一张非常简单,只有两个字段:idname,它被称为table_categories。所以,很明显,我想为每条新闻都有一些类别。我知道我可以创建一个新表:table_news_categories,其中将包含以下内容:idnews_idcategory_id。但对我来说,这有点夸大其词。我不能在table_news 中有一个类似categories 的列,它是类别ID 的“数组”吗?处理起来岂不是简单多了?

【问题讨论】:

  • 这不完全是一个涉及解决编程问题的问题,或者是吗?这对我来说很不清楚。
  • 我想问一下是否有可能将 ID 数组作为一列处理,并知道这是否是好的做法,以及它是否好:它是否可以与带有附加表的解决方案相媲美。
  • 好的。现在我想我也理解了你的问题。已回答。
  • “不是更容易处理吗?”——不,不会。您可能认为这是为了更简单的查询,但是一旦您想对数据“做更多”,您就会意识到它实际上是非常有限的。标准化是有原因的。
  • 没有。请参阅规范化。

标签: php mysql arrays list


【解决方案1】:

如果您希望数据库具有灵活性,您应该有一个 link-table

table_news 
table_categies
table_news_categories (linktable that links the above table together)

如果您不需要灵活性,您可以随时在 table_news 表中添加 FORIDCategory 或类似字段 - 以创建表之间的关系。

table_news 
table_categies

根据经验,我认为最可取的方法是从头开始添加另一个(链接)表。一开始它可能看起来并不重要,但如果数据库增长,你肯定会需要它。当数据库中有大量数据时,以后更难更改数据库结构。

示例: 您现在有 100 条新闻,分为 10 个类别。在大约半年内,您可能会收到 10.000 条新闻。现在,您可能希望某些新闻有两个类别。然后您将创建链接表,根据 FORIDCategory 值创建所有关系到新链接表中,然后删除 FORIDCategory em>-字段并保持数据库的所有完整性。

【讨论】:

    猜你喜欢
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 2011-10-02
    • 2021-01-30
    • 2019-06-30
    • 2018-08-10
    相关资源
    最近更新 更多