gpt4 book ai didi

php - 社交网络的数据库设计

转载 作者:行者123 更新时间:2023-11-29 11:38:48 25 4
gpt4 key购买 nike

我正在设计一个类似于 Facebook 结构的社交媒体数据库。我正在使用MySQL。我们数据库的主要目标是性能,它必须处理大量请求。

我有一个用户、 friend 、墙上帖子、评论和点赞的列表。

Q1-对于用户来说,我有几种类型的用户,我有普通用户、主管和管理员。对于该表,我正在考虑定义一个父用户表,然后继承信息,但同时字段是相同的。示例:

user
=============
id
username
password
email
isAtcive
country

noraml_user
===============
name
..
..
user_id

supervisor
==============
name
..
..
user_id

admin
=======
name
..
..
user_id

我考虑这种方法是因为性能,所以我没有使用用户类型搜索单个用户(以一百万用户为例),而是搜索(表主管中的 300K 用户)。我说得对吗?

Q2-我对帖子和评论点赞。这是我的设计

posts
==========
id
content

comments
==========
id
content
post_id

posts_likes
==========
id
post_id
user_id

comment_likes
==========
id
comment_id
user_id

您认为这是正确的吗?或者我只是为类似的内容制作了一张表格

likes
=========
id
post_id(nullable)
comment_id(nullable)
user_id

最好的方法是什么?

Q3-您能为我提供一些设计社交网络数据库时需要考虑的技巧吗?

谢谢:)

最佳答案

Q1:您不应该为不同的用户类型创建单独的表。事实上,您应该在公共(public)用户表中拥有一个用户角色列。然后,该角色将定义用户可以执行的操作。索引的全部意义在于有效地查找表的子集。

问题2:同样,您可能会发现您有内容和喜欢(甚至可能是“ react ”)。除非有特定原因使帖子保持特殊,否则它们实际上只是没有父级的内容。

问题 3:是的,对于这样的网站来说,这是一个宽泛的问题。

关于php - 社交网络的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36165733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com