小编Ono*_*cci的帖子

一对多对自己

如何为一个可以与自身建立一对多关系的实体构建一个表?具体来说,我正在开发一个跟踪动物繁殖的应用程序.每只动物都有一个ID; 它还有一个父亲ID和一个女性ID.因此,从父系或贵妇到后代可以有一对多.我会倾向于这样的事情:

ID INT NOT NULL PRIMARY KEY
SIRE_ID INT 
DAME_ID INT
Run Code Online (Sandbox Code Playgroud)

并且为购买并添加到种畜中的那些动物记录空值,并在表格中记录其余的动物ID.

所以:

  1. 有人能指出我讨论建模这种关系的文章/网页吗?
  2. ID应该是INT还是某种字符串?INT中的NULL表示动物在数据库中没有父项,但可以使用具有特殊标志值的String来表示相同的事物.
  3. 这可能最好通过两个表格建模吗?我指的是动物的一张桌子和一张单独表格,表示亲属关系,例如:

    动物

    ID INT NOT NOT PRIMARY KEY

    亲属

    ID INT NOT NOT PRIMARY KEY FOREIGN KEY

    SIRE_ID INT PRIMARY KEY FOREIGN KEY

    DAME_ID INT PRIMARY KEY FOREIGN KEY

我为上述事件道歉:我的SQL生锈了.我希望它能传达我正在思考的东西.

database-design data-modeling table-structure

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

如何让 ANSI 转义序列在 Erlang Werl 中工作?

Windows 7 x64 上的 Erlang R17.0 x64。

当我clear在一个 werl 窗口中键入时,我看到显示的 ANSI 转义序列。我也试过 --clear()相同的结果。从我的挖掘看来,werl 应该能够处理 ANSI 转义序列。我需要做些什么才能让它工作吗?

erlang erlang-shell

5
推荐指数
0
解决办法
200
查看次数

如何使用Anko屏蔽密码?

我意识到Anko(和Kotlin)都是相当先进的,但我希望有人能够给我一点指导.当然,这对我来说只是一个学习项目.

我从代码中略微修改了以下Kotlin代码(使用Anko):

verticalLayout {
    padding = dip(30)
    val name = editText {
        hint = "Name"
        textSize = 24f
    }
    val password = editText {
        hint = "Password"
        textSize = 24f
        inputType = android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD
    }
    button("Login") {
        textSize = 26f
        onClick {
        toast("Good afternoon, ${name.text}!")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所有东西都在构建和显示但我似乎无法获得密码editText来掩盖输入,因为我正在输入它.我错过了什么?

kotlin anko

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

在Elixir中编写函数“ once”

我主要是从Java语言背景来学习Elixir的。在JS中,可以编写一个更高阶的函数“一次”,该函数返回一个仅调用传入函数一次的函数,并在后续调用中返回前一个结果-技巧是处理通过闭包捕获的变量:

var once = (func) => {
    var wasCalled = false, prevResult;
    return (...args) => {
        if (wasCalled) return prevResult;
        wasCalled = true;
        return prevResult = func(...args);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我看来,由于Elixir不同的变量重新绑定行为,因此无法在Elixir中创建此函数。是否还有其他聪明的方法可以通过模式匹配或递归来实现,或者只是不可能?没有宏,我想那些可以启用它。谢谢

functional-programming memoization immutability elixir

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

如何将bool转换为BOOL?

通过这种结构,我可以安全地将C++ bool转换为Windows API BOOL

bool mybool = true;
BOOL apiboolean = mybool ? TRUE : FALSE;
Run Code Online (Sandbox Code Playgroud)

我认为这是肯定的,因为我没有看到任何明显的问题,但我想花点时间只是因为这可能比它看起来更微妙.

感谢Dima(我轻轻地)用我最初提出问题的方式指出了我的粗心大意.

c++ winapi casting boolean

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

这可以用点自由风格表达吗?

给出以下表达式来总结一个IEnumerable数字:

let sum l = l |> Seq.reduce(+)  //version a
Run Code Online (Sandbox Code Playgroud)

有可能消除这个论点 - 就像这样吗?

let sum = Seq.reduce(+)    //version b
Run Code Online (Sandbox Code Playgroud)

我从F#编译器(FS0030)得到一个错误,我似乎记得曾经看过有关"eta转换"的内容,但遗憾的是我对lambda calc的了解太少,无法跟踪如何涉及eta转换.

参数可以像版本b一样被删除吗?

有人请指点文献来解释eta转换以及它将如何在这段特殊代码中发挥作用吗?

FS0030:

stdin(1,5):错误FS0030:值限制.值'sum'被推断为具有泛型类型val sum:('_a - > int)当'_a:> seq要么使'sum'的参数显式,要么如果你不打算使它是通用的,添加类型注释.

f# lambda-calculus pointfree

4
推荐指数
3
解决办法
631
查看次数

这是尾递归吗?

我有以下代码片段:

def flatten([h|t]), do: [h] ++ flatten(t)
Run Code Online (Sandbox Code Playgroud)

我在fp世界中很新,想知道这是否是尾递归?

elixir

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

映射与无关紧要的密钥访问

使用定义为原子或字符串的键在Map上匹配的最佳做法是什么?

%{"artist" => artist, "track" => track, "year" => year}
Run Code Online (Sandbox Code Playgroud)

VS

%{artist: artist, track: track, year: year}
Run Code Online (Sandbox Code Playgroud)

功能需要匹配两者:

def duplicate_post(%{"artist" => artist, "track" => track, "year" => year}) do
  ...
end
Run Code Online (Sandbox Code Playgroud)

elixir

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

Elixir 中的命名函数和匿名函数有什么区别?

命名函数和匿名函数有什么区别?

hello = &("Hello, #{&1}")匿名函数是怎样的?

function elixir

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

在凤凰城实现highlight.js的正确方法是什么?

我用过这个,它有效,但感觉有点hacky.我已经尝试将highlight.pack.js文件复制到文件web/static/js并从.html.eex文件中调用它,但这只是给了我一个错误.我尝试过使用CDN(它有效),但这并没有给我我想要的结果.那么在phoenix v1.2.0中实现highlight.js的正确方法是什么呢?如果重要的话,我正在使用Earmark v1.0.1进行降价支持.

elixir highlight.js phoenix-framework

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