我正在从事一项非常艰巨的项目; 我的问题是关于使用BOOLEAN值来确定是否需要进一步数据处理时获得的效率.
例如:如果我有一张列出所有生物的表格.在另一个关系性的表中列出了他们的冬眠期,以及冬眠期间每天消耗的卡路里.
在(生物)表中包含"hibernates"BOOLEAN的值是否有效.
如果为true,则转到"hibernation_creature_info_relations"表并找到具有该ID的生物并返回该信息.
这意味着对于"hibernates"= false的值的所有生物将阻止SQL必须搜索"hibernation_creature_info_relations"的大表.
或者当使用ID时,如此快速地检查"hibernation_creature_info_relations"表的过程如此快,以至于如果休眠值设置为true或false,必须处理基于hatennation的值的参数,实际上会对性能产生更大的影响. ?
我希望这是足够的信息,以帮助您了解我的要求,如果不是,请让我知道,以便我可以改写或包含更多细节.
我目前正在开发一个包含许多不同表的项目,这些表使用规范化来有效地最小化重复和NULL单元格值.我的问题涉及最小化正在使用的表格数量的正确方法,以及我所采用的方法是否糟糕以及我可能采取的方法是否存在可预见的问题.
我很快就制定了一个与我正在做的相比较的例子,但更加简化了.
请帮助我了解哪种方法更好,或者有更好的方法然后显示?
图片http://img225.imageshack.us/img225/6972/helpdb.jpg
更大图像的链接,http://img225.imageshack.us/img225/6972/helpdb.jpg
编辑:我要感谢大家的热烈回答/评论.我能够将我的初始数据结构表削减大约40%; 答案也帮助我改进了我目前的数据结构,使其更加可扩展.我希望在未来2-3个月内完成这个项目.然后你可以看看你帮助我学习和建立的东西!非常感谢你,我希望在我的知识和经验增长的同时,向我现在所处的社区做出贡献.再次感谢你!
我正在尝试提取在数千个URL上唯一不同的内联javascript,并嵌套在各个级别的代码中.
当我熟悉XPATH语法时,我试图看看是否有人知道一个很好的方法来定位javascript例如:
<script type="text/javascript"> ...data_#...</script>
<script type="text/javascript"> ...data_#...</script>
<script type="text/javascript"> ...data_n...</script>
<script type="text/javascript"> ...data_#...</script>
<script type="text/javascript"> ...data_#...</script>
Run Code Online (Sandbox Code Playgroud)
<script>...data_n...</script>我试图提取的唯一唯一标识符包含:
var tabsRelated = ...
Run Code Online (Sandbox Code Playgroud)
在XPATH的范围内,有没有人知道找到包含该变量的脚本并定位整个脚本的方法?排序如下:
//script[inner.text contains='var tabsRelated'
Run Code Online (Sandbox Code Playgroud)
语法不合适
面对什么感觉是一个小挑战.我试图从两个不同的<Services>和<BlacklistedServices>模型中检索一个对象集合作为<ServicesViewModel>类型.
第一种:键入<Services>,将其命名为Services.(显示在第二个代码示例中)
第二种:键入<BlacklistedServices>,将其命名为BlacklistedServices.
Dim BlacklistedServices As IQueryable(Of Models.BlacklistedServices ) = unitOfWork.AutoServiceBlackList.GetAll()
Run Code Online (Sandbox Code Playgroud)
这两个集合之间的关系如下.列入黑名单的某些服务作为BlacklistedServices中的记录存在.
以下是我想要实现的目标:
我已经完成了大部分工作.我被困在部分(1.2).
以下是我的工作代码:
Services= uow.Services.GetAll().Select(Function(service) New ServiceViewModel() With
{.ServiceID = service.ServiceID,
.PropertyABC= service.ABC,
.PropertyDEF= service.DEF.
.Blacklisted = BlacklistedServices.Any(Function(BLS) BLS.ServiceName = service.Name),
.Enforced = If(BlacklistedServices.Any(Function(BLS) BLS.ServiceName = service.Name),
BlacklistedServices.FirstOrDefault(Function(BLS) BLS.ServiceName service.Name).Enforced, False)}).ToList()
Run Code Online (Sandbox Code Playgroud)
除了尝试在viewmodel上设置.Enforced属性时,它的工作方式非常完美.
.Enforced = If(BlacklistedServices.Any(Function(BLS) BLS.ServiceName = service.Name),
BlacklistedServices.FirstOrDefault(Function(BLS) BLS.ServiceName service.Name).Enforced, False)}).ToList()
Run Code Online (Sandbox Code Playgroud)
返回的错误如下:
System.Data.EntityCommandCompliationException:{"准备命令定义时发生错误.有关详细信息,请参阅内部异常."} InnerException:{"无法将类型为'MySql.Data.Entity.SelectStatement'的对象强制转换为'MySql. Data.Entity.LiteralFragment"."}
问题似乎是在尝试使用逻辑时(If).在大多数情况下,我不认为这在构造新对象和确定作为参数传递的内容时会是一个问题; 但是,这或多或少被转换为必须发送到服务器的IQueryable表达式树.那么实体框架可能无法将逻辑转换为SQL逻辑?
一如既往,任何和所有的帮助表示赞赏!