我是设计数据库的新手,目前,我正在开发一个我需要一个非常大的数据库的大型项目。在这里,我有几个问题可以让我的数据库准备好实现。 - 请记住,这个项目主要关注Laravel -
问题1: 我的项目使用帖子,但不仅仅是一个。我有一个系统,可以创建三种帖子,标准帖子,个人资料帖子和公司帖子。所有这些帖子都可以包含图片。目前,我在所有这些不同的帖子表中都有一个名为Post_photo'的列。这是存储与帖子相关联的图片的正确方法吗?如下图所示,
问题2: 每个帖子都可以包含注释,并且要将这些注释连接到帖子,您需要引用它们。但由于我有三种不同的帖子,我将评论表设置为这样; "评论表包含一个Post_ID列和一个Company_post_ID列" 而不是它有一个Post_ID。这是将评论与帖子连接的正确方法吗?或者我是否需要创建另一个名为company_comments的表?如果没有,我该如何做到这一点? 我在我的喜欢和类别表上也有相同的系统,因为我需要将我的喜欢和类别引用到帖子。这是正确的方法吗?为了了解我在说什么,上面有一张图片。
感谢您花时间阅读本文!
答案 0 :(得分:1)
以下假定您使用的是关系数据库。
答案1:如果每个帖子可以有多个图片或文件,那么最佳做法是创建一个参考帖子ID的照片表。
这样当您加载帖子时,您会在照片表中查询包含与帖子ID匹配的PostID字段的列。
答案2:如果三种类型的帖子非常相似(并包含类似的数据),请考虑只有一个帖子表,并包含一个表示帖子类型的字段。例如,名为postType的字段可以存储与该类型对应的整数(0-2)。这将简化您的评论表,因为您只会引用postID。
最后一点,你可能会发现这个关于在数据库中存储二进制数据的线程很有用:(Storing files in SQL Server)