我正在制作社交网络应用程序。数据库将是大约10000的MySQL。到目前为止,我已经有了以下数据库方案。
用户详细信息(用户首次注册时的这两个表)
数据库设计
USER_TABLE(USER_ID,用户名,密码);
个人信息(* user_id *,dob,sex,contact)
用于发布状态(当用户发布状态并在其他人的墙上更新时) 我想为此制作4个单独的表格
数据库架构如下: Status_Table(* STATUS_ID *,USER_ID,状态,日期,时间,no_of_likes,profile_pic_id) Likes_Table(STATUS_ID,用户名) Comment_Table(STATUS_ID,USER_ID,评论,COMMENT_ID,no_of_likes_on_comments) Likes_on_Comments(COMMENT_ID,用户名)
关注系统(就像推特)
数据库模式
跟随者(USER_ID,followers_id);
通知(喜欢,评论,标签,跟随)
数据库模式
通知(notification_id,USER_ID,SENDER_ID,STATUS_ID,类型,is_seen);
此数据库设计最适合我的应用程序,还是应该进行一些更改?
我也不确定照片的实现方式。我应该在哪里存储所有用户的照片。(图片包括(个人资料照片,专辑) 它是将数据存储在数据库中的好方法,还是应该将它们存储在文件系统中。并在数据库中提供照片/相册的路径??
感谢任何帮助。
答案 0 :(得分:0)
有关您的架构的几条评论:
1)你应该考虑合并几个表。如果两个表具有“一对一”关系,并且从一个表到另一个表的信息之间存在强连接,那么您应该合并表。 这将是USER_TABLE和PERSONAL_INFO的情况。
2)关于STATUS_TABLE,STATUS_LIKES,COMMENTS和COMMENTS_LIKES - 我会考虑将所有内容合并到两个表中 -
USER_ACTION - 将保留并执行评论,图片发布或状态更改等操作。
LIKES - 将保留USER_ACTION表之类的内容。