![](/img/trans.png)
[英]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.