gpt4 book ai didi

mysql - 在数据库中组织日常用户数据的最佳方式是什么?

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

我正在使用 MySQL 设置一个数据库,目的是为潜在的大量唯一用户存储数据。每个用户都会有一些与之相关的基本数据 - 唯一的用户名、他们何时加入该服务、他们使用该服务的次数以及一组个人偏好。我计划保留一张名为“用户”的表专用于这些字段。

但是,在用户使用服务的每个 session 期间,将收集有关该用户的大量具有特定架构的数据。这些数据包括哪个用户执行了此 session 、 session 日期、用户做了什么等。

我的思考过程如下:如果我为用户使用一个表,其中包含每个 session 的数据,这似乎效率很低,因为必须为每个唯一 session 有一列,或者包含更多或更多的列减去 session 数组或列表。如果我想将这些数据保留不确定数量的 session ,那么每列一个的想法就会失败,因为我相信存在列限制。更新单列中的数组似乎也不受欢迎,我认为原因与保留数据的完整性和维护最佳的组织有关。

所以看起来我想要两张表,一张用于用户,另一个用于 session 。每次有人完成 session 时,有关该 session 的数据都会在“ session ”表中创建为新行,并且每行还将有一个外键将该 session 链接到完成该 session 的特定用户。

这是正确的思路吗?如果不是,我该如何考虑?

谢谢

最佳答案

我想说你已经很接近了。您应该将用户和 session 分开,并且您正在考虑对关系进行建模。每个 session 只有一个用户,因此是一对多的关系。

1 个用户(“用户”表中的 1 行)可以有多个 session (“ session ”表中的 1 行)

外键是 session 表中的用户 ID。这会将每个唯一的 session (我假设它有自己的 session ID)链接回 Users 表中的唯一用户。

如果您正在考虑大量用户,这意味着大量 session ,您可能需要考虑如何帮助 session 表不变得非常庞大并且查询速度缓慢。如果您每天收集此数据,请考虑您可以按日期“分区”表格:

Partitioning on DateTime in MySQL

编辑:错别字

关于mysql - 在数据库中组织日常用户数据的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31082989/

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