gpt4 book ai didi

php - 数据仓库设计论坛类 session 现场

转载 作者:行者123 更新时间:2023-11-29 14:59:12 28 4
gpt4 key购买 nike

我完成了 session 站点设计,现在应该创建数据库。但我不确定该使用哪种方法。我正在使用 Apache、PHP 和 MySQL。我有用户,每个用户都有输入和输出邮箱,每个用户都有一个好友列表。这是基本场景。我在这里有三个问题。

  • 对于收件箱和发件箱,我应该为每个人创建一个新表吗?或者一张大的收件箱和发件箱表并识别每封邮件的发件人和收件人就足够了吗?如果每个用户有100万条消息,搜索并显示他的邮箱会导致速度变慢吗?

  • 为了创建 friend 列表,还创建一个表,将所有用户关系存储为一行数据,谁是谁的 friend ?还为每个用户好友搜索表会导致速度变慢吗?

  • 而且我用的是Mysql,但是据说Oracle最强大。由于这些原因我应该选择哪一个?

也许您会想到应该有多少人注册到我的网站并强制访问数据库,但谁知道呢))

最佳答案

我会回答你的几个问题:

For in box and out box should I create for each person new table? or 1 big in box and out box table and identifying for each mail who is sender and receiver will be enough?

使用一张表。这有很多优点,例如能够在单个查询中轻松查询所有用户的消息。例如,要搜索发送超过 x 条消息的所有用户,您可以使用 GROUP BY(userid) 并对每个组进行计数。如果您将所有数据都放在一个表中,那么这很简单,但如果您为每个用户都有一个表,则必须动态生成此查询的 SQL。

如果表变得太大,您可以 partition例如,您可以根据用户 ID、发布年份或其他对您的数据分布有意义的内容进行分区。

If there will be 1 million message for each user searching and showing his mail boxes will cause a slow down?

这要看情况。如果您对表建立索引并使用索引进行搜索,那就没问题了。如果你写LIKE '%foo%'那么它会很慢。确保您的所有搜索都使用索引。

我会把其他问题留给其他人来回答。

关于php - 数据仓库设计论坛类 session 现场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3741078/

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