我需要在自定义编码的社交网站上实现评论功能.评论需要在类似于facebook的视频,图片,专辑等各种页面上实现.
实施此操作的最佳做法是什么?
使用这样的字段创建一个全局注释表,并根据所需页面上的注释类型获取注释.
commentid int(10) userid int(10) comment_type ENUM('video','picture') comment varchat(200) parent int(10)
或为每个评论制作单独的表格?
我不这样做.我会在另一边使用子类型.
创建一个名为(例如)内容的父表;
视频,图片,专辑等是内容的子实体;
Comment具有Content ID的外键.
实现子类型有三种基本方案:
为每个子类型创建一个单独的表;
使用Conent ID的外键创建一个名为Content的表,其中包含从属表Video,Album等.内容表还有一个内容类型字段,用于指示哪个表与该记录相关; 要么
将所有内容放入一个名为Content的表中,该表包含一堆可选(可为空)列以覆盖子类型.当存储特定于子类型的信息所需的列几乎没有差异时,这是最合适的.
如果您将"注释"与"视频"或"相册"表关联起来,则可以使用所谓的独占弧.这不是数据建模的推荐做法.
编辑:例如:
用户(id,用户名,给定姓名,姓氏,电子邮件地址)
内容(id,content_type,submitter_id,submitted_date);
图像(id,url,高度,宽度);
视频(id,url,格式,高度,宽度,长度);
专辑(id,name);
相册照片(id,album_id,photo_id);
评论(id,author_id,comment_date,comment,content_id);
一些说明:
submitter_id和author_id是User.id的外键;
Image.id,Video.id和Album.id都是Content.id的外键;
Content.content_type是"Image","Video"或"Album"之一;
相册包含存储在图像中的一张或多张照片;
联接表专辑照片将专辑链接到图像(多对多关系);
希望能搞清楚.