>我有两个表:一个是大的,扩展的,它是table_news
的,一个非常简单,只有两个字段:id
和name
,它被称为table_categories
。所以,很明显,我想为每个新闻设置一些类别。我知道我可以创建一个新表:table_news_categories
将包含以下内容:id
、news_id
、category_id
。但对我来说,这有点夸大其词。我不能在table_news
中有一个像 categories
这样的列,这将是类别 ID 的"数组"吗?处理起来不是更简单、更容易吗?
如果你想在你的数据库中有灵活性,你应该有一个链接表表
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 字段并保持数据库的所有完整性。