Java 存储';用户收到通知的次数';关于数据库
我正在使用JavaSpring和MySQL开发这个函数“发送通知给所有用户*次” 这是我提出的数据库结构 表:通知Java 存储';用户收到通知的次数';关于数据库,java,mysql,Java,Mysql,我正在使用JavaSpring和MySQL开发这个函数“发送通知给所有用户*次” 这是我提出的数据库结构 表:通知 ╔════╦════════════════════╦════════════════════╦══════════════════════╦══╗ ║ ID ║ TITLE ║ CONTENT ║ RECEIVE_CRITERIA ║ ║ ╠════╬════════════════════╬═══════════════
╔════╦════════════════════╦════════════════════╦══════════════════════╦══╗
║ ID ║ TITLE ║ CONTENT ║ RECEIVE_CRITERIA ║ ║
╠════╬════════════════════╬════════════════════╬══════════════════════╬══╣
║ 1 ║ Welcome to our app ║ NULL ║ Just for demonstrate ║ ║
║ 2 ║ Hi ║ Welcome to our app ║ Just for demonstrate ║ ║
╚════╩════════════════════╩════════════════════╩══════════════════════╩══╝
表:通知设置
╔═════════╦═══════════════╗
║ NOTI_ID ║ MAX_SEND_TIME ║
╠═════════╬═══════════════╣
║ 1 ║ 3 ║
║ 2 ║ 5 ║
╚═════════╩═══════════════╝
表:通知统计
╔════╦═════════╦═════════╦════════════════╦══╗
║ ID ║ USER_ID ║ NOTI_ID ║ NUM_OF_RECEIVE ║ ║
╠════╬═════════╬═════════╬════════════════╬══╣
║ 1 ║ 23 ║ 1 ║ 2 ║ ║
║ 2 ║ 32 ║ 1 ║ 1 ║ ║
║ 3 ║ 23 ║ 2 ║ 3 ║ ║
║ 4 ║ 32 ║ 2 ║ 5 ║ ║
╚════╩═════════╩═════════╩════════════════╩══╝
我面临一个问题:
2.每次重新发送通知时,我都会查询通知统计中不存在的新用户列表,并执行与步骤1相同的循环。我在这里收到的列表最多可以是1000条记录 谢谢你的阅读
编辑:编辑1)和2)使问题更容易理解问题的第一步是:您的所有用户都在一个数组“users”中。 步骤2:在此步骤中,您将在NOTIFICATION_STATISTIC table中执行插入,并确认是否存在该用户和通知组合的统计信息,以最小化查询负载 在第2步之前,从NOTIFICATION_STATISTIC表中获取所有通知统计信息(如数组“statistics”),其中NOTI_ID是必须插入20000条记录的当前通知ID 现在,实际的步骤2在NOTIFICATION_STATISTIC中插入行,只需检查循环中当前用户id的“statistics”数组,如果它在那里,则不插入,如果用户id不在数组“statistics”中,则只插入 示例代码(只是逻辑,不是为Java编写的):
对不起,格式不对!我现在要回家了,回家后我会编辑我的帖子。很抱歉让你误解了我的问题。1) 2)不是两个步骤。这是我面临的两个问题。我将编辑我的问题,以便更容易理解
variable notitfication_id = 3;
array users; // all list of users
statistics = "SELECT USER_ID FROM NOTIFICATION_STATISTIC WHERE NOTI_ID = notitfication_id"; // SQL query;
foreach (users as user) {
if (!statistics contain user.id OR user.id IS NOT IN the array statistics) {
INSERT INTO NOTIFICATION_STATISTIC VALUES ('', user.id, notitfication_id, 0);
}
}