1

我正在制作一个社交网络应用程序。数据库将是 MySQL 大约 10000。到目前为止,我已经有了以下数据库方案。

User-details(用户第一次注册时的这两张表)

数据库设计
User_Table(user_id,username,password);
个人信息(*user_id*,dob,sex,contact)

发布状态(当用户发布状态并在其他人的墙上更新时)我正在考虑为此制作 4 个单独的表格)

  1. 用于发布具有唯一 ID 的状态。
  2. 用于存储和检索喜欢该状态的人的姓名。
  3. 用于存储和检索有关发表评论的人的状态和姓名的评论。
  4. 用于检索对状态发表的评论的喜欢。

数据库Schema如下: Status_Table(*status_id*,user_id,status,date,time,no_of_likes,profile_pic_id) Likes_Table(status_id,username) Comment_Table(status_id,user_id,comment,comment_id,no_of_likes_on_comments) Likes_on_Comments(comment_id,username)

关注系统(就像 twitter)
数据库模式
关注者(user_id,followers_id);

通知(对于喜欢、评论、标签、关注)
数据库模式
通知(notification_id、user_id、sender_id、status_id、type、is_seen);

这个数据库设计最适合我的应用程序还是我应该想出一些改变?

我也不确定照片的实现。我应该在哪里存储所有用户的图片。(图片包括(个人资料图片,相册)是将其存储在数据库中的好方法还是应该将它们存储在文件系统中。并给出照片/相册的路径数据库??

任何帮助表示赞赏。

4

1 回答 1

0

关于您的架构的几条评论:

1)你应该考虑合并几个表。如果两个表具有“一对一”关系,并且从一个表到另一个表的信息之间存在很强的联系,那么您应该合并这些表。这将是 USER_TABLE 和 PERSONAL_INFO 的情况。

2) 关于 STATUS_TABLE、STATUS_LIKES、COMMENTS 和 COMMENTS_LIKES - 我会考虑将所有表格合并到两个表中 -

USER_ACTION - 将举行评论、图片发布或状态更改等操作。

LIKES - 将保存 USER_ACTION 表的喜欢。

于 2016-01-17T11:45:37.017 回答