小编kie*_*bui的帖子

社交网络中的通知数据模型?

我用Neo4j构建了一个社交网络,它包括:

节点标签:User,Post,Comment,Page,Group

关系:LIKE,WRITE,HAS,JOIN,FOLLOW,...

就像Facebook一样.

示例:A user关注B user:当B有诸如发布,评论,跟随其他用户,关注页面,加入组等操作时,将发送操作A.类似的,C,D,E随后用户B会收到相同的通知.

我不知道如何为这个问题设计数据模型,我有一些解决方案:

  1. Notification为每个用户创建节点.如果执行了某个操作,请nn关注者创建通知.好处:我们可以检查这个用户是否看过通知,对吧?但是,节点数量迅速增加,功率增加n.
  2. 为每个调用API通知(对于客户端应用程序)创建一个查询,此查询仅在特殊时间(24小时或2,3天)内获取用户的操作列表.但是,关注者不会检查此通知,但此查询可能会使服务器变慢.
  3. 创建数量有限的节点,例如每个用户20个节点.
  4. 在24小时内创建无限节点(包括操作时间),并且这些节点具有操作时间属性> 24小时将被删除(到期时间可能是2,3天).谁能帮我解决这个问题?我应该选择哪种解决方案或新方式?

notifications data-modeling social-networking neo4j

5
推荐指数
1
解决办法
474
查看次数

如何在Postman中编辑,删除和自定义存储的响应示例?

Postman中,我保存了发送请求时的响应示例,但无法删除或重命名。我看不到自定义响应示例的地方。

postman

5
推荐指数
2
解决办法
3627
查看次数

通道元素类型太大 Golang

我正在编写一个并行处理矩阵的程序。

我的矩阵是使用常量创建的n

const n = 10
Run Code Online (Sandbox Code Playgroud)

频道是用以下代码创建的:

a := make(chan [n][n]int)
Run Code Online (Sandbox Code Playgroud)

这适用于任何低于大约值的任何东西12n但任何更大的东西都会出现以下错误:

channel element type too large (>64kB)
Run Code Online (Sandbox Code Playgroud)

查看教程等,似乎缓冲通道可能是解决此问题的方法,但我尝试使用以下代码执行此操作,并给出了相同的错误:

a := make(chan [n][n]int, 1000)
Run Code Online (Sandbox Code Playgroud)

我是正确使用缓冲通道还是它们不是解决此问题的方法?任何关于我如何推进这一点的提示都非常感谢。

编辑:继给出的答案和评论之后,我现在正在尝试创建一个全局矩阵,该矩阵是空白的并且 go 例程可以写入。

const n int = 1024

blank [n][n]int
Run Code Online (Sandbox Code Playgroud)

我不确定如何在全球范围内声明它,并已尝试通过上述方法解决此问题。是否需要全局初始化?我似乎尝试的一切都会出错。

arrays channel matrix go goroutine

5
推荐指数
1
解决办法
1123
查看次数

未找到 libudev 开发包

我正在编写一个应用程序自动检测设备是否插入/拔出。

我在 Qt 框架中使用了 C++。libudev.h包含在我的代码中。我实际上通过sudo apt-get install libudev-dev以下方式成功安装了 libudev-dev 包,但 QtCreator 仍然有一条错误消息:libudev development package not found

文件.pro:

...
CONFIG   += console c++11
CONFIG   -= app_bundle
unix: CONFIG += link_pkgconfig
unix: PKGCONFIG += libudev
HEADERS += DeviceManager.h
SOURCES += main.cpp \
  DeviceManager.cpp
...
Run Code Online (Sandbox Code Playgroud)

设备管理器.h文件:

#ifndef DEVICEMANAGER_H
#define DEVICEMANAGER_H

#include <QObject>
#include <QDebug>
#include <QSet>
#include <libudev.h>

#include "DeviceModel.h"

class DeviceManager : public QObject
{
    Q_OBJECT
public:
    explicit DeviceManager(QObject *parent = 0);

    QSet<DeviceModel *> getDevices();
    QStringList getDevicePaths(); …
Run Code Online (Sandbox Code Playgroud)

linux qt udev qt5 libudev

5
推荐指数
2
解决办法
6611
查看次数

如何将地图或json对象存储为neo4j中的属性?

我正在尝试将地图或json对象存储为Neo4j中的属性,但它不起作用.

neo4j cypher

4
推荐指数
1
解决办法
4881
查看次数

哪个在Qt中更有效:带有参数的构造函数或之后带有setter的默认构造函数?

问题与标题中的一样.

例如:

QPropertyAnimation *animation;
animation = new QPropertyAnimation(this, "windowOpacity", this);
Run Code Online (Sandbox Code Playgroud)

要么

QPropertyAnimation animation;
animation.setTargetObject(this);
animation.setPropertyName("windowOpacity");
animation.setParent(this);
Run Code Online (Sandbox Code Playgroud)

哪个更有效率?

编辑:虽然它没有显着差异,除非反复进行,我仍然想知道,我宁愿想要答案而不是意见 - 如stackoverflow的指导建议.

c++ setter constructor object-construction

2
推荐指数
1
解决办法
3979
查看次数