假设我在数据库中有2个表.例如:Dog&Boss这是一个多对多的关系,因为老板可以拥有超过1只狗,而一只狗可以有超过1只拥有者.我是Bobby的老板,但我的妻子也是.
但是很多人不被允许,所以有一个很好的帮助:DogsPerBoss
如何在代码中对此进行建模?
班老板可以拥有一系列狗.Class Dog可以拥有一系列老板. - >至少,这就是我的想法.也许有更好的解决方案?
辅助表中的额外数据怎么样?应该是de Boss级还是Dog级?例如:昵称(我叫狗"好孩子",我的妻子叫他"小狗")
我希望我的问题有点清楚吗?有什么最好的方法来实现这个目标是什么?你能给我一些参考吗?
ORM(如NHibernate)不是一个选项.
我在R中实现了一个新的统计模型,它在我的沙箱中工作,但我想让它更标准.一个很好的比较是lm(),我可以采取模型对象和:
summary()功能predict()功能plot()于预先选择的描述性图表我查看了R手册,在线搜索,翻阅了几本书,除非我忽略了什么,否则我找不到一个关于应该进入新模型包的好教程.
虽然我最感兴趣的是完整的参考文献或指南,但我会将这篇文章重点放在一个包含两个组成部分的问题上:
答案可以来自R Core(或包开发人员)的角度或从用户的角度来看,例如用户期望能够使用诸如汇总,预测,残差,系数之类的函数,并且通常期望在拟合模型时传递公式.
是否有任何最佳实践(甚至标准)以一致和全面的方式在数据库中存储地址?
更具体地说,我认为在这个阶段有两种地址存储的情况:
特定国家的设计/解决方案将是一个很好的开端.
答案:这个问题似乎还没有完美答案,但是:
在R中指定公式有许多冗余的,有时是冲突的方法.是否有一个全面而简洁的参考,用于将概念模型映射到R语法而不是?formula?
我感兴趣的是一个全面的介绍,其中包括用于指定非线性公式和层次模型,如语法glm,lmer,gam,earth,包括(/)筑巢,random并fixed在混合模型的影响,并s与te样条曲线,和其他流行的发现贡献包.
我正在修补PySpark文档中的一些交叉验证代码,并尝试让PySpark告诉我选择了哪个模型:
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.evaluation import BinaryClassificationEvaluator
from pyspark.mllib.linalg import Vectors
from pyspark.ml.tuning import ParamGridBuilder, CrossValidator
dataset = sqlContext.createDataFrame(
[(Vectors.dense([0.0]), 0.0),
(Vectors.dense([0.4]), 1.0),
(Vectors.dense([0.5]), 0.0),
(Vectors.dense([0.6]), 1.0),
(Vectors.dense([1.0]), 1.0)] * 10,
["features", "label"])
lr = LogisticRegression()
grid = ParamGridBuilder().addGrid(lr.regParam, [0.1, 0.01, 0.001, 0.0001]).build()
evaluator = BinaryClassificationEvaluator()
cv = CrossValidator(estimator=lr, estimatorParamMaps=grid, evaluator=evaluator)
cvModel = cv.fit(dataset)
Run Code Online (Sandbox Code Playgroud)
在PySpark shell中运行它,我可以得到线性回归模型的系数,但我似乎无法找到lr.regParam交叉验证程序选择的值.有任何想法吗?
In [3]: cvModel.bestModel.coefficients
Out[3]: DenseVector([3.1573])
In [4]: cvModel.bestModel.explainParams()
Out[4]: ''
In [5]: cvModel.bestModel.extractParamMap()
Out[5]: {}
In [15]: cvModel.params
Out[15]: [] …Run Code Online (Sandbox Code Playgroud) modeling cross-validation pyspark apache-spark-ml apache-spark-mllib
我有一个项目,在运行时需要特定对象的用户定义属性(让我们说这个例子中的人物对象).该项目将有许多不同的用户(1000 +),每个用户为他们自己的'Person'对象集定义他们自己的唯一属性.
(例如 - 用户#1将具有一组已定义的属性,这些属性将应用于此用户拥有的所有人对象.多达1000个用户,这是应用程序将使用的最低用户数.)这些属性将用于查询people对象并返回结果.
我认为这些是我可以使用的可行方法.我将使用C#(以及任何版本的.NET 3.5或4),并且有一个免费的统治:用于数据存储的内容.(我有mysql和mssql可用,虽然可以自由使用任何软件,只要它符合要求)
我的评估中是否遗漏了任何错误或做出了错误的假设?
在这些选择中 - 你会选择什么样的解决方案?
混合EAV对象模型.(使用常规关系模型定义数据库,并为Person表创建一个'property bag'表).
缺点:每个/查询有很多连接.表现不佳.可以达到查询中使用的联接/表数量的限制.
我已经敲了一个快速的样本,它有一个Subsonic 2.x'esqe接口:
Select().From().Where ... etc
Run Code Online (Sandbox Code Playgroud)
这会生成正确的连接,然后过滤+转动c#中返回的数据,以返回使用正确类型的数据集配置的数据表.
我还没有加载测试这个解决方案.它基于Microsoft白皮书中的EA建议: SQL Server 2008 RTM文档用于性能和可伸缩性的语义数据建模的最佳实践
允许用户在运行时动态创建/更改对象的表.这个解决方案就是我认为NHibernate在使用动态属性时在后台做的事情,如下所述
http://bartreyserhove.blogspot.com/2008/02/dynamic-domain-mode-using-nhibernate.html
缺点:
随着系统的增长,定义的列数将变得非常大,并且可能会达到最大列数.如果有1000个用户,每个用户的"人"对象有10个不同的属性,那么我们需要一个包含10k列的表.在这种情况下不可扩展.
我想我可以允许每个用户使用一个人属性表,但是如果有1000个用户可以启动,那么应用程序中有1000个表加上另外10个用户.
我不确定这是否可扩展 - 但似乎并非如此.如果我不对,请有人纠正我!
使用NoSQL数据存储区,例如CouchDb/MongoDb
根据我的阅读,这些尚未在基于字符串的大型应用程序中得到证实,并且处于开发阶段的早期阶段.如果我在这次评估中不正确,有人可以告诉我吗?
使用people表中的XML列来存储属性
缺点 - 没有查询索引,因此需要检索和查询每一列以返回结果集,从而导致查询性能较差.
将对象图序列化到数据库.
缺点 - 没有查询索引,因此需要检索和查询每一列以返回结果集,从而导致查询性能较差.
berkelyDB的C#绑定
从我在这里读到:http://www.dinosaurtech.com/2009/berkeley-db-c-bindings/
Berkeley Db肯定证明是有用的,但正如Robert指出的那样 - 没有简单的界面.您的整个wOO包装器必须手动编码,并且所有索引都是手工维护的.它比SQL/linq-to-sql困难得多,但这是你为荒谬的速度付出的代价.
似乎有很大的开销 - 但是如果有人能够提供关于如何在C#中维护索引的教程的链接 - 它可能是一个观众.
SQL/RDF混合.奇怪我以前没想过这个.与选项1类似,但不是"属性包"表,只是XREF到RDF商店?查询将涉及两个步骤 - 查询RDF存储以查找正确属性的人员,返回人员对象,并在SQL查询中使用这些人员对象的ID来返回关系数据.额外的开销,但可能是一个观众.
UML可以用于自己编程计算机系统,没有支持的实现语言,例如直接到机器代码的图表(可能通过C或C++等),没有人工编码干预.
当我阅读UML规范上层结构时,有序列图并且有一个协作图所以,它们之间有什么区别