Questions tagged «denormalization»

1
为具有多个多对多关系的视频游戏业务领域设计数据库
我对数据库设计比较陌生,因此决定创建自己的假设数据库进行实践。但是,我难以建模和规范化它,因为我认为存在许多多对多(M:N)关系。 一般方案说明 该数据库旨在保留有关在Zelda系列上工作过的各种人员的数据。我想跟踪的控制台(S) ,一个游戏可以玩上,员工是曾在部分游戏的发展,乔布斯的员工有(很多员工在不同的工作职位在多个游戏等) 商业规则 多个员工可以从事多个游戏。 多个游戏可以在同一控制台上。 多个控制台可以是同一游戏的平台。 多个雇员可以具有相同的工作。 一个雇员可以有多个工作。 一个游戏可以有多个雇员。 一个游戏可以有多种类型的乔布斯在它的发展 多个游戏可以附加相同类型的作业。 一个控制台可以有多个人做这个工作。 一个人可以在多个控制台上工作。 属性名称和样本值 员工姓名,可以分成第一和最后(例如“约翰”和“李四”) 游戏标题(例如“时间之笛”) 职务(例如“关卡设计”,“导演”,“沉着”,“关卡设计师”,“程序员”,“本地化”等)。 控制台名称(例如“ Game Boy Advance”) 问题 到目前为止,无论我设计什么,似乎到处都存在感兴趣的实体类型之间的数据冗余和M:N关系。但是,我认为数据库设计人员必须始终遇到这种问题,因此必须找到解决方案。 注意:我很容易找到填充表的数据,问题是将其组织到具有标准化表格的数据库中。

6
将多个值存储在一行的一个字段中而不是单独存储的可能的好处
在我们上一次的每周会议上,一个没有数据库管理经验的人提出了以下问题: “是否有一种场景可以证明以行(字符串)而不是几行的形式存储数据?” 让我们假设有一个表countryStates,我们要在其中存储一个国家的州。在本示例中,我将使用USA,并且为了懒惰,不会列出所有州。 在那里,我们将有两列;一个被称为Country,另一个被称为States。作为讨论在这里,并通过@ srutzky提出的答案时,PK会通过定义的代码ISO 3166-1阿尔法-3。 我们的表如下所示: +---------+-----------------------+-------------------------------------------------------+ | Country | States | StateName | +---------+-----------------------+-------------------------------------------------------+ | USA | AL, CA, FL,OH, NY, WY | Alabama, California, Florida, Ohio, New York, Wyoming | +---------+-----------------------+-------------------------------------------------------+ 当向朋友开发人员询问相同的问题时,他说,从数据流量大小的角度来看,这可能很有用,但是如果我们需要操纵这些数据则没有用。在这种情况下,必须在应用程序代码上具有智能,该智能可以转换列表中的此字符串(假设可以访问此表的软件需要创建一个组合框)。 我们得出的结论是,该模型不是很有用,但是我怀疑可能有一种使之有用的方法。 我想问的是,你们中是否有人已经以一种切实有效的方式看到,听到或做过类似的事情。

3
关系数据库中的完整性约束-我们应该忽略它们吗?
我正在与我工作的公司的开发人员进行永久性讨论,因为他们说最好摆脱关系数据库中的关系强制(通过FOREIGN KEY约束定义),以便加快大型查询并获得更好的结果。性能。 所考虑的平台是MySQL 5.x,并且尚未设置FOREIGN KEY,甚至缺少相关表的一些PRIMARY KEY约束,至少对于我来说,这是不合理的。也许他们是对的,但我是错的,但我没有足够的论点来讨论这种情况。 三年来,这一直是首选方法。我是这家公司的新手(只有一个月),但是随着产品的“上市”,人们在犹豫是否要增强数据库。话说回来,我注意到的第一件事是一页需要1分钟的加载时间(是的,需要60秒!)。 当前事务状态背后的一种说法是,“非规范化”数据库比规范化数据库要快,但我认为那不是真的。 大多数相关查询都包含JOIN操作,这使它们在处理大量数据(数据库包含数百万行)时非常非常非常慢地运行。 通常,“ CRUD”操作的处理是在应用程序代码级别实现的;例如,为了删除一些数据自,例如TableA: 必须首先即时检查TableA和的行之间是否存在某种关系TableB, 如果上述关系被“检测到”,则应用程序代码将不允许删除相关行,但是 如果由于某种原因该应用程序代码失败,则无论涉及的行和表是否存在任何关系,DELETE操作都将“成功”进行。 题 您能帮我拟定一个良好,准确而可靠的答案以丰富辩论的内容吗? 注意:也许以前有人问过(并回答过)类似的问题,但是我无法通过Google找到任何东西。

4
存储数以百万计的行的非数字化数据还是某些SQL魔术?
我的DBA经验远不止于简单存储+检索CMS样式数据,还有很多,所以这可能是一个愚蠢的问题,我不知道! 我遇到一个问题,我需要查询或计算特定时间段内特定群体人数和特定天数的假期价格。例如: 一月份任何时候可供4人入住2晚的酒店客房多少钱? 我有像这样存储的5000家酒店的价格和空房数据: Hotel ID | Date | Spaces | Price PP ----------------------------------- 123 | Jan1 | 5 | 100 123 | Jan2 | 7 | 100 123 | Jan3 | 5 | 100 123 | Jan4 | 3 | 100 123 | Jan5 | 5 | 100 123 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.