[英]how to search values like (10,000 and 20,000 and 25,000) in mysql using php
[英]PHP / MYSQL - how to structure a log database for 25,000 users
我正在与分布在公司 5 个部门的大约 25,000 名用户(员工)打交道。
对于所有这些用户,目前正在使用 MS Excel 电子表格。 该电子表格由大约 35 列组成,记录了员工的日常活动。
每行是 1 个活动,平均每天大约有 3 个活动(永无止境,这意味着日志只会不断增长)。
我想建立一个数据库(PHP/MYSQL)来保存这些用户的活动日志,而不是 MS Excel 文件。
我是否应该为每个用户创建一个包含 35 列的表...导致一个包含 25,000 个表的数据库?
或者我应该将活动存储到一个 35 大小的数组中,将其转换为二进制并将其存储在一个 blob 中并每年构建一个这样的表......导致每年 1 个表有 25,000 行?
Employee
------------
employeeID
employee_name
Day
------------
dayID
day
Activity
-------------
activityID
activity_name
dayID
employeeID
这样您就可以查看一天的活动 您可以查看员工的活动 可以查看员工在特定日期的活动
如果您实际上在每个活动中使用许多/大部分这些字段,我会使用 35 列表。
CREATE TABLE users (
uid INT,
name VARCHAR(255),
...
);
CREATE TABLE activities (
uid INT, // references users.uid
type VARCHAR(32),
date DATE,
... // The 35 activity-related columns
);
然后我会按时分区。 如果搜索性能很重要,则可能是每年(这意味着每个表最多大约 2740 万行),或者每月(每个表大约 220 万行),并且每年的表太大而无法获得良好的性能.
根据经验,您不想为每个用户创建一个表。 就此而言,您希望有 1 个表users
,您将在其中存储仅与用户 model 相关的 ID、名称等。 然后有一个单独的表将记录用户的日常活动,其中user_id
列作为users
表中用户行的引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.