我有两个表:一个是大的,扩展的,它是table_news
,一个很简单,只有两个字段:id
和name
,它叫做table_categories
。所以,显而易见的是,我希望每个新闻都有一些类别。我知道我可以创建一个新表:table_news_categories
,其中包含:id
,news_id
,category_id
。但对我来说,这有点夸大其词。我不能在categories
中有table_news
这样的列,它会是类别ID的“数组”吗?处理它会不会更简单,更容易?
答案 0 :(得分:0)
如果您想要数据库的灵活性,您应该有一个 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 -value创建所有关系到新的链接表中,然后删除 FORIDCategory -field并保持数据库的完整性。