Php 演示如何访问两个表中的数据

Php 演示如何访问两个表中的数据,php,database,Php,Database,我有两个ERD向我展示了从表I-e访问数据的最佳方法 表一为类别,表二为文章 TWO Tables ERD Table Category (CategoryId CategoryName CategoryDescription ); Table Articles (ArticlesId ArticlesTitle ArticlesBody ArticlesCreatedby CategoryId (`forigen Key`FK)); 我没有那个名声去发布图片,但这里是

我有两个ERD向我展示了从表I-e访问数据的最佳方法

表一为类别,表二为文章

TWO Tables ERD

 Table Category 

(CategoryId
CategoryName
CategoryDescription );

Table Articles 


(ArticlesId
 ArticlesTitle
 ArticlesBody
 ArticlesCreatedby
 CategoryId (`forigen Key`FK));
我没有那个名声去发布图片,但这里是diagramatic ERD图片的链接

表一为类别,表二为文章,表三为类别和文章

Three Tables ERD

Table Category

(CategoryId
CategoryName
CategoryDescription );


Table  Articles

(ArticlesId
 ArticlesTitle
 ArticlesBody
 ArticlesCreatedby
    );

Table Category & Articles

(Category_id
Articles_id);
第二个代码的图示ERD:


这取决于您的数据。如果你每篇文章只需要一个类别,那么选项一就行了。但是,如果将来您可能需要每篇文章包含多个类别,那么您的第二个选项会更好。缺少的是第二个选项,Category&Articles表应该将这两个字段都作为外键

上面第二个选项中的第三个表是连接表。它的明确目的是提供其他两个表之间的链接。这允许多对多关系(一个类别可以有多个项目,一个项目可以有多个类别),而第一个选项仅提供一对多关系(每个项目只能有一个类别)


articles表中的两个字段都应该是外键的原因是它们始终与其他表中的记录相关。通过将它们设置为外键,您可以保护您的数据输入(如果您尝试输入错误的ID,则会出错),并且您可以帮助数据库优化您加入数据的任何查询。

是的,我正在考虑使用第二个ERD。先生,请解释一下你给我的建议。。你们的意思是说我应该把第三个表中的category和articles id作为外键?是否可以在第三个表中使用它们作为合成?我已经更新了我的答案,希望它涵盖更多的要点。我不确定你对这个主题了解多少,但如果你不知道,你会想看看加入数据。这将允许在一个查询中组合来自多个表的数据,并返回组合的数据集。这在你的两种方法中都是至关重要的。