gpt4 book ai didi

sql - 在数据库中存储状态更新的更好方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:55:06 24 4
gpt4 key购买 nike

我正在开发一个网络应用程序,使用户能够发布类似于 Twitter 的简短状态更新。我能想到的存储这些帖子的唯一方法是有一个大的“status_updates”表来存储每个用户的状态更新:

--------------------------------------
| table: status_updates |
-------------------------------------|
| id | user_who_posted | update_text |
--------------------------------------

此方法需要类似于此 SQL 查询的内容来获取每个用户的更新:

SELECT * FROM status_updates where user_who_posted="username"

而且我认为这不会非常低效。有更好的方法吗?

最佳答案

构建一个用户表,并将user_id 设为该用户表的整数外键。然后,在user_id字段上建立索引,以便快速检索。

简而言之:

status_updates:
--------------------------------------
| status_id | user_id | status |
--------------------------------------
| 1 | 1 | Woot! |
--------------------------------------
| 2 | 1 | Yeah! |
--------------------------------------
| 3 | 2 | Hello! |
--------------------------------------

users:
--------------------------
| user_id | username |
--------------------------
| 1 | 'Joe' |
--------------------------
| 2 | 'John' |
--------------------------

然后,要检索,您可以这样做:

select
u.username,
s.status
from
status_updates s
inner join users u on
s.user_id = u.user_id
where
u.username = 'John'

这将检索:

-------------------------
| username | status |
-------------------------
| John | Hello! |
-------------------------

随心所欲。只要您正确构建索引,这将在数百万行上表现出色。您使用的是什么 RDBMS,所以我可以为您指出正确的位置?

关于sql - 在数据库中存储状态更新的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/992090/

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