小编CON*_*GHT的帖子

帮助我了解mnesia(NoSQL)建模

在我理解Mnesia的过程中,我仍然在用关系术语思考.因此,我将把我的斗争放在这里,并寻求解决它们的最佳方法.

一对多关系 说我有一群人,

-record(contact, {name, phone}). 
Run Code Online (Sandbox Code Playgroud)

现在,我知道我可以将手机定义为总是保存为列表,因此人们可以拥有多个电话号码,我想这是做到这一点的方式(是吗?我怎么会这样看,反过来,比如,找一个数字的名字?).

多对多关系 现在让我们假设我有多个团体可以让人们进去.团体名称没有任何意义,它们只是名字; 这个概念是"unix系统组"或"标签".天真的,我会把这个会员资格建模为一个支持者,比如

{groups [{friends, bool()}, {family, bool()}, {work, bool()}]} %% and so on...
Run Code Online (Sandbox Code Playgroud)

例如,作为上面"联系"记录中的字段.如果我希望能够快速查找基于组名的组中的所有成员,并且还希望能够查找个人注册的所有组,那么在mnesia中对此进行建模的最佳方法是什么?当然,我也可以将其建模为仅包含组标识符的列表.与mnesia一起使用时,对此进行建模的最佳方法是什么?

如果这个问题愚蠢,我道歉.关于mnesia的文档很多,但它缺乏(IMO)一些很好的整体使用示例.

erlang mnesia nosql

12
推荐指数
1
解决办法
1216
查看次数

如何正确地将值从pyqt返回到JavaScript?

我已经在下面的答案中找到并编辑了.

我想在QtWebKit中将值从python代码返回到javascript上下文.到目前为止,我有一个这样的课程:

class Extensions(QtCore.QObject):
  @QtCore.pyqtSlot()
  def constant_one(self):
    return 1;
# ... later, in code
e = Extensions();
def addextensions():
  webview.page().mainFrame().addToJavaScriptWindowObject("extensions", e);
# ... 
webview.connect(webview.page().mainFrame(), QtCore.SIGNAL("javaScriptWindowObjectCleared"), addextensions)
Run Code Online (Sandbox Code Playgroud)

我可以从Javascript中调用此函数,如下所示:

var a = extensions.constant_one();
Run Code Online (Sandbox Code Playgroud)

它确实被称为(我在那里用印刷品验证过); 但仍然最终未定义.为什么不从函数返回值?我也试过在QVariant中包装一个,但到目前为止还没有骰子.

编辑:我找到了答案.显然,QtWebKit需要结果类型作为提示.可以将它提供给pyqtSlot-Decorator,如下所示:

class Extensions(QtCore.QObject):
  @QtCore.pyqtSlot(result="int")
  def constant_one(self):
    return 1;
Run Code Online (Sandbox Code Playgroud)

然后它正常工作.让这个开放另外两天,以防有人发现我应该做的其他事情.

qt pyqt qtwebkit

9
推荐指数
1
解决办法
1902
查看次数

如何配置要存储为 (postgres 9.4) jsonb 的 grails 域类属性?

我试过像这样配置一个域类:

class Test {

    String data

    static constraints = {
    }

    static mapping = {
        data type: 'jsonb'
    }
}
Run Code Online (Sandbox Code Playgroud)

这会引发异常(最终的原因是Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not determine type for: jsonb, at table: test, for columns: [org.hibernate.mapping.Column(data)])。

我也试过column: 'data', sqlType: 'jsonb',它会创建一个text名为data.

我如何正确地告诉 grailsjsonb用作 sql 列类型?有可能吗?

(postgresql jdbc 驱动程序用于 9.4-1200.jdbc4 和 hibernate 4。)

grails hibernate grails-orm postgresql-9.4

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

标签 统计

erlang ×1

grails ×1

grails-orm ×1

hibernate ×1

mnesia ×1

nosql ×1

postgresql-9.4 ×1

pyqt ×1

qt ×1

qtwebkit ×1