有谁知道论文/书籍等.那个文件模式的数据库?例如,一个常见的经验法则是每个表都应该有一个主键,并且键应该没有信息内容.所以我想知道是否有人写过关于设计关系数据库的设计模式的书或发表论文?
@Gaius,
这是数据库设计师需要权衡的问题 - 数据库结构的可能稳定性是什么?鉴于足够长的时间范围,没有什么是稳定的.或者说反过来,只要有足够长的视野,一切都会发生变化.代理键(理论上)永远不应该改变它的含义,因为它从来没有意义.
我想在那个特定的设计场景中要考虑的另一件事是谁会看到主键?如果主键是最终用户实际需要引用的东西,那么将它变成可以理解的东西是有意义的.但我想不出最终用户需要看到主键的许多情况; 通常存在主键以允许DB引擎加速某些操作.
我最初想到的问题是找到数据库设计的设计模式,这些设计模式由比我更有经验的数据库设计者编写,以便有希望避免一些容易避免的错误.如果有人编写过数据库设计反模式,那将会很有趣.
在C++中我会写这样的东西:
if (a == something && b == anotherthing)
{
foo();
}
Run Code Online (Sandbox Code Playgroud)
我认为Clojure等价物是这样的:
(if (= a something)
(if (= b anotherthing)
(foo)))
Run Code Online (Sandbox Code Playgroud)
或者是否有另一种方法来执行我错过的逻辑"和"?正如我所说,后一种形式似乎工作正常 - 我只是想知道是否有一些更简单的方法来执行逻辑和.在Clojure Google Group上搜索"boolean""logical"和"and"会产生太多结果,但却没有多大用处.
我正在努力学习Scala - 来自C++背景.我正在尝试为一个任务跟踪应用程序编写一个小类我正在一起攻击,以帮助我学习如何编写Scala代码.
这似乎应该很简单,但出于某种原因,它让我不知所措:
package com.catenacci.tts
class Task(val ID:Int, val Description:String) {
val EmptyID = 0
val EmptyDescription = "No Description"
def this() = this(EmptyID,EmptyDescription)
def this(ID:Int)={
this(ID,EmptyDescription)
}
def this(Description:String)={
this(EmptyID,Description)
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试提供三个构造函数:任务(ID,描述),任务(ID),任务(描述).在后两种情况下,如果调用者没有提供其中一个值,我想将值初始化为常量值.我希望能够在课堂外进行检查以进行单元测试.因此,我认为加入两个公共警察可以让我从班级外面检查,以确保我的状态是我所期望的.
但是,由于某种原因,此代码将无法编译.我收到以下错误:
error: not found: value EmptyID
Run Code Online (Sandbox Code Playgroud)
和
error: not found: value EmptyDescription
Run Code Online (Sandbox Code Playgroud)
那我错过了什么?我正在完成"Scala编程",所以如果对这个问题有一个简单的答案,请给我页码.我不介意阅读,但是按照第60页和第62页的代码,我不明白为什么这段代码失败了.
我猜这与构造函数方法有关,可能两个val在构造函数结束之前都没有初始化.如果是这样的话,是否有某种方法可以获得我正在寻找的效果?
我正在阅读github上的一些代码elixir代码,我看到|>经常使用.它不会出现在文档站点的操作列表中.这是什么意思?
即
expires_at: std["expires_in"] |> expires_at,
Run Code Online (Sandbox Code Playgroud) 我想测试一个正在使用的函数 Task.async
为了使我的测试通过,我需要让它在断言前保持100ms睡眠,否则测试过程在异步任务执行之前被杀死.
有没有更好的办法?
编辑,添加代码示例:
我想测试的代码(大致):
def search(params) do
RateLimiter.rate_limit(fn ->
parsed_params = ExTwitter.Parser.parse_request_params(params)
json = ExTwitter.API.Base.request(:get, "1.1/search/tweets.json", parsed_params)
Task.async(fn -> process_search_output(json) end)
new_max_id(json)
end)
end
Run Code Online (Sandbox Code Playgroud)
我已经写过的测试(仅用于调用睡眠)
test "processes and store tweets" do
with_mock ExTwitter.API.Base, [request: fn(_,_,_) -> json_fixture end] do
with_mock TwitterRateLimiter, [rate_limit: fn(fun) -> fun.() end] do
TSearch.search([q: "my query"])
:timer.sleep(100)
# assertions
assert called TStore.store("some tweet from my fixtures")
assert called TStore.store("another one")
end
end
end
Run Code Online (Sandbox Code Playgroud) 在F#中,我想将字符列表转换为字符串.请考虑以下代码:
let lChars = ['a';'b';'c']
Run Code Online (Sandbox Code Playgroud)
如果我只是做lChars.ToString,我会得到"['a';'b';'c']".我想要获得"abc".我意识到我可能会做一个List.reduce来获得我正在寻找的效果,但似乎应该有一些原始内置到库中来执行此操作.
为了给出一点上下文,我正在对字符串中的单个字符进行一些操作,当我完成后,我想显示结果字符串.
我试过谷歌搜索这个没有喜悦的方式.我是否需要咬紧牙关并构建一个List.reduce表达式来进行这种转换,还是有一些更优雅的方法来做到这一点?
有没有人知道一个图书馆有一个随着时间的推移反向传播的工作实施?任何Java/Python/C#/ VB.NET/F#(最好是最后一个)都可以!
我在Ecto项目中遇到了这个问题.没有任何查询正在运行.我做了一些谷歌搜索和github问题搜索.有几个但与我的问题无关.
这个问题是从这个问题开始的https://github.com/elixir-lang/ecto/issues/602#issuecomment-145596702(主要与我的问题有关)
query = from u in Univer, where: u.id > 4, select: u
Run Code Online (Sandbox Code Playgroud)
爆发了** (RuntimeError) undefined function: u/0.不仅是那个型号,还有其他型号.我的朋友.
{:postgrex, "~> 0.9.1"},
{:poison, "~> 1.5"},
{:httpoison, "~> 0.7.2"},
{:ecto, "~> 1.0.4"},
{:floki, "~> 0.5"}
Run Code Online (Sandbox Code Playgroud)
目前所有从db读取都是通过psql.它做的工作,但很烦人.:)
供参考.
defmodule Univer do
use Ecto.Model
import Ecto.Query
schema "univers" do
field :ref, :integer
field :name, :string
field :legal_name, :string
field :city, :string
field :type, :string
field :address, :string
field :contacts, {:array, :string}
field :fax, :string
field :phones, {:array, …Run Code Online (Sandbox Code Playgroud) 我有VB6应用程序,我想在其中放入一些好的错误处理功能,它可以告诉我错误是什么,确切地点发生时,有人可以建议这样做的好方法
我需要将Excel电子表格导入SQL Server 2005.我需要采取哪些步骤来实现这一目标?