是将冗余数据存储在索引中更好,还是拥有两个索引然后交叉引用它们更好?即,用户想在剧院看电影。由于用户有兴趣按影院查找电影,我们可以有一个带有电影nested_type的影院索引://Here,moviesfieldwillbeaNestedType,notObjectType.eclient.index({index:'myindex',type:'theater',id:1,body:{name:"GrandCinema",description:"Comewatchmovies!",movies:[{title:"RedNovember",description:"Asubmari
我有一个名为DiveSite的核心数据实体,它具有大量属性,其中许多是代表影响潜水地点的特征或条件的bool值。事实上,我有太多属性以至于xCode给我警告-“错误配置的实体-DiveSite有超过100个属性;考虑更浅的实体层次结构或非规范化属性”可以对这些属性中的许多属性进行分组,从而减少实体属性的总数-我可以将bool值组更改为一系列整数,然后进行逻辑运算并检查我想要的因素。我还意识到我可以将这些组分成单独的实体-其中一些将具有一对一关系,一些具有一对多关系就性能而言,将我的DiveSite实体更改为具有更少的属性会是一件积极的事情吗?如果是这样,那么拥有单独的实体或拥有6个属性
尽管被用户多次询问,我仍然对背后的理论感到不自在。我正在使用mongodb作为数据库来存储用户创建的某些事件(通过facebook进行身份验证)。出于效率原因,我想将他们的个人资料图片URL与事件一起存储(事件集合中的非规范化)。当事件从数据库中获取时(由我网站的随机访问者),个人资料图片通过以下方式在客户端呈现:无访问token(由于客户端的安全性)最好是延迟加载...据我了解,当我在不传递访问token的情况下对同一个人资料图片服务器端发出多个请求时,速率限制将成为一个问题。(来自相同IP地址的相同请求)速率限制是否计入IP地址?如果是这样,只有网站访问者超过速率限制会出现问题,而
场景:大系统(约200个表)。60,000名用户。复杂的报告需要我对每个报告进行多次查询,甚至那些将是复杂的查询,内部查询遍布整个地方+在PHP中进行一些处理。方法:我看到了一种方法,但我不确定:拥有一个集中的、非规范化的表,用于记录系统中可报告的任何事件。该表将主要包含外键,因此她应该相当紧凑和快速。因此,例如(我的系统是一个虚拟学习管理系统),用户注册类(class),该表存储用户ID、日期、类(class)ID、组织ID、事件类型(注册)。当然,我还将这些数据存储在实际应用程序使用的规范化数据库中。优点:用于处理数据和快速检索的简单、可维护的查询和代码。缺点:存在非规范化表与真实
我认为有必要为用户通知去规范化数据库。例如,在标记帖子时(用户应该考虑),我们添加一列flagENUM('yes','no')(或状态列)。可以通过使用user_id='XX'ANDflag='yes'的WHERE子句计数来查找用户的标记事件。这个归一化结构很好;但是如果我们有不同类型的通知呢?例如帖子、评论、照片的标志……这意味着当用户刚刚访问他的个人资料页面时,我们需要计算几个表。这对于像stackexchange这样的跨项目来说更为严重,因为我们会收到不同站点的通知。我认为反规范化有助于将通知列添加到用户表中post_flagstinyint(3),comment_flagsti
我目前正在构建一个具有多种用户类型的Web应用程序,用户可以在其中参与多种事件类型。我需要设计一个表格,将用户和事件之间的“喜欢”(赞成票、+1,等等)相关联。无论如何,我都不是MySQL方面的专家,所以我想避免在我的数据库设计中走上错误的道路,尤其是像这样的事情。我想的是像下面这样的表格:CREATETABLElikes(from_idint(11)NOTNULL,from_typeVARCHAR(100)NOTNULL,to_idint(11)NULL,to_typeVARCHAR(100)NULL,postedTIMESTAMPDEFAULTCURRENT_TIMESTAMP,P
假设TABLE-A在TABLE-B中可以有一行或多行,在TABLE-C中可以有一行或多行,在TABLE-D中可以有一行或多行......等等。假设我在TABLE-Z并且需要了解有关TABLE-A的详细信息。我是否创建了从TABLE-Z一直到TABLE-A的SQL查询?在某些时候,如果TABLE-Z有一个FK到TABLE-A这样查询就不会那么痛苦,也许会很好。但是,如果我放那个FK,我想我会破坏规范化,对吧?关于如何处理这个问题的一般建议? 最佳答案 如果您使用复合主键(如果您在创建任何表之前对设计进行了正确的建模,实际上会发生这种情
概述(抱歉,它含糊不清-我认为如果我更详细地介绍它只会使事情复杂化)我有三个表,表一包含一个ID,表二包含它自己的ID和表一的ID,表三包含它自己的ID和表二的ID。我思考了很久,觉得如果表三也包含相关表的id会更有效率。-这将意味着我将不必连接三个表,我可以只查询表三(对于将经常使用的查询)-通过仅锁定表3中包含表1中特定ID的行,我可以更轻松地实现预订系统。对于任何想了解更多关于数据库布局的人,这里有更多信息here问题去规范化有哪些不利因素?我见过一些人完全反对它,而另一些人则相信在正确的情况下它是一个有用的工具。id永远不会改变,所以除了必须两次插入相同的数据外,我没有看到任何
我有一个学区数据库(大约15,000个,并且还在不断增加)以及每个学区的员工可用的退休计划/福利。数据已经很好地归一化了:区记录与0或n个退休计划选项相关联(其中n一个地区记录与0或n个yield相关联(其中n接近1个连接表中的40)地区还与其他一些事物相关联,其中关联的数量是名义上的。现在客户要报告。他们希望以一种非常动态的方式进行报告(想想iTunes智能播放列表,可以在其中为任何地区、计划或福利的任何属性(property)添加/删除规则)。我需要允许他们查询某个地区的任何属性(property)、其退休计划或其福利,并返回一切。为了(暂时)保持简单并避免重复数据,我设置了几个V
我正在使用MySQL,所有事务的规范化表。现在,我需要获取数据作为日志,但它需要加入超过12个表来记录我们需要查看的所有数据,只有最后30个提交的数据(完成/拒绝)将显示在分页中(日志页面1)但仍然有下一个最后30个分页。9INNERJOIN3LEFTJOIN(It'sAdminOrderFormwhencustomerOrderingviaOffline(friend))WHEREorder_status=1ORorder_status=2(done&reject)ORDERBYorder_dateDESCLIMIT30(limiting30perpagewithpagination