我正在创建一个网站,用户可以在其中发布一些文本,并且最多可以附上一张照片,用户可以评论/喜欢
在我的数据库中创建代表这些实体/动作的表的最佳方法是什么
我将首先查看执行您正在谈论的各种事情的现有软件包。如果由于某种原因无法修改现有包以适合您的目的,请查看代码和数据库设置以了解它们是如何做到的。
不要从一张白纸开始项目,然后进来说“嘿,我该怎么做这个复杂的大任务?”
对我来说,解决方案将涉及表之间的一些关系。
首先,我希望我的代码尽可能可扩展,所以我会有一个线程表。
ThreadID ThreadData
-------------------------------
1 Favourite languages
2 Favourite Programmers
其次,我有某种帖子表,与线程表有外键关系:
PostID PostData TimeStamp User ThreadID
--------------------------------------------------------------
1 C# ftw!! 07/04/2013 Chris 1
2 Adi Shamir 07/04/2013 Chris 2
了解如何以这种方式将所有帖子链接到主题。现在您无法确定用户是否会发布照片,因此我不会photo
在您的帖子表中包含字段,因为您希望避免 NULL 值,因此您的表已完全规范化。这意味着一个Photo
表,与该表具有外键关系Post
。
PhotoID PhotoLocation PostID
------------------------------------------------
1 img/adishamir.jpg 2
然后,您只需在加载帖子时加载照片。
最后点赞,跟照片桌很像。一个 LikeID 和一个喜欢的帖子。
然后由您来编写以有意义的方式显示此数据的代码!:)