php - MYSQL 查询 - 我的大脑爆炸了

标签 php mysql arrays json duplicates

这是我的第一个问题,如果我违反了任何礼仪,请抱歉。 我有点喜欢编码,但有时我的大脑很难消化逻辑步骤的路径。

目前我正在开发自己的小型网络应用程序,我在其中举办公共(public)事件,并且正在制作自己的宾客名单。

到那时,我已经解决了这些问题:(我认为是这样)

  • 从 Facebook 页面获取所有事件;
  • 从当前事件 View 中获取所有与会者;
  • 实时搜索功能和按字母顺序排列数组。

待办事项:

  • 完整的 CHECK 按钮功能 - 当选中时,一个按钮将从 利斯;
  • 其他分析功能。

问题:

目前,我正在从 JSON 字符串获取所有与会者,然后转换为数组,将其全部放入数据库中。我无法决定 SQL 逻辑。

我有所有人员列表 - json->array->db,然后它从数据库读取并显示已检查但未检查的内容,就像与来自 JSON 的表进行比较一样。

当前算法是 - 获取 json,并在 foreach 循环中,每次我加载它时都会写入数据库,使用 INSERT IGNORE 它会忽略它是否是相同的用户 ID,所以我拥有所有参加者的数据库。

如何安排我的数据库?我正在考虑制作表格:

客人 - USERID ;事件 ID;姓名; [对于所有人的巨大名单] 签到 - 用户 ID;检查事件 ID;约会时间; [用于获取统计数据]

我的目标是制作“签到”门应用程序,所以最后我发现,那些和那些用户更多地参加此类事件,而不是这些事件......

那么我怎样才能制作类似的统计数据,例如 - 事件 - 参加了 X 的 Y 个人,以及更多全局 SQL 查询,例如,用户 Y 参加了事件 A、B、C。或者,大多数检查发生在时间跨度[可能是一些条形图或图表]....

我是否应该为每个事件创建一个新表来存储所有客人以查看所有与会者统计信息,并检查表以获取签到统计信息?

最佳答案

对于您所说的“检查”功能,听起来您想要(大致*)下表:

create table users
(
  userid float NOT NULL,
  username varchar(64)
);

create table events
(
  eventid float NOT NULL,
  eventname varchar(64),
  eventstart date,
  eventlength float 
 );

 create table checkin_activity
 (
   userid float not null,
   eventid float not null,
   checkin_time date
 );

* 这是一个高度简化的数据库模式。您需要确保添加必要的键、约束等,并确保列上的数据类型合适。我没有对这个简单的例子考虑太多。

使用 USERS 和 EVENTS 表中的条目,您将使用您所说的“检查”按钮填充 CHECKIN_ACTIVITY 表。您可以根据需要连接对这些表的查询以运行报告等。

注意:您提到:

Current algorithm is - getting json, and in foreach cycle, everytime i load it writes in DB, using INSERT IGNORE it ignores if it's same userid, so i have db of all atendees

您应该避免在 for 循环中写入数据库(写入上面我没有考虑到的表;我们将其称为 EVENT_ATTENDEES 表)。相反,构建一个INSERT ALL查询并执行一次,这样您就不会n次访问数据库的事务处理程序。

INSERT ALL
  INTO event_attendees (eventid, name) VALUES (1, 'John') 
  INTO event_attendees (eventid, name) VALUES (1, 'Jane')
  INTO event_attendees (eventid, name) VALUES (1, 'Colin')
SELECT * FROM dual;

如果您经常执行这种负载,这一点尤其重要。

关于php - MYSQL 查询 - 我的大脑爆炸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761397/

相关文章:

php - S3 在上传时设置 MIME 类型

php - 如何调用单独的 header.php?

c - 在C中逐行读取文件

php - 为什么 SUM (`column` ) 返回一个字符串而不是一个整数?

php - UPDATE 语句向其他行添加空白

python - 从给定起始索引的一维数组中提取子数组 - Python/NumPy

c++ - 使用 `new` 创建字符数组会生成比我指定的更多的字符。 C++

php - Prestashop 1.7 - 顶部菜单中的下拉子类别

php - 在字符串内的 while 循环内运行函数?

mysql - 更新 Node mysql 中的行时出现问题