data-modeling相关内容

如何避免我的数据库中的NULL,同时还表示丢失的数据?

在 SQL和关系理论(CJ Date,2009)中,第4章主张避免重复行,并避免 NULL 属性。虽然我没有麻烦避免重复行,我很难看到我可以建模数据,而不使用 NULL 。例如 - 这是一个从工作。 我们有一个 artist 表, ,以及其他列中的 gender 列。这是 gender 表的外键。然而,对于一些艺术家,我们不知道他们的性别 - 例如我们被给了一个新的音乐的列表,没有对艺术家的 ..
发布时间:2017-03-14 00:59:16 其他数据库

如何设计一个表的列不固定的模式

我想设计一个表格的列不固定的模式。例如:我有一个Employee表,其中表的列不是固定的和变化的(Employee的属性不是固定的和变化的)。 Employee表本身的空列,即没有规范化 不要添加可空列,而是在其各个表中分隔这些列ex:if Address是要添加的列,然后创建表Address [EmployeeId,AddressValue]。 创建表ExtensionColu ..
发布时间:2017-03-13 22:48:42 其他数据库

OLAP数据库是否应按读取性能进行非规范化?

我一直认为数据库应该按读取性能进行非规范化,因为它是针对OLAP数据库设计的,对于OLTP设计没有夸大3NF。 PerformanceDBA在各种帖子中,例如针对基于时间的数据的不同aproaches的性能保护数据库应该始终良好设计的范例,通过归一化为5NF和6NF(正常形式)。 我的理解是否正确(我的理解是否正确)? OLAP数据库的传统非规范化方法/范式设计(低于3NF)有什 ..

实体属性值(EAV)的替代方法?

我们的数据库是基于EAV(Entity-Attribute-Value)模型设计的。 我问我的客户关于为什么使用EAV模型(灵活性)的原因,他们的反应是:他们的实体随时间而变化。所以,今天他们可能有一个表有几个属性,但在一个月的时间,可能会添加一些新的属性,或可以重命名现有的属性。他们需要生成报告以及时返回任何阶段,并根据该阶段实体的形状查询数据。 我明白这是不可行的常规关系模型,但我 ..

主键的设计标准是什么?

选择好的主键,候选键以及使用它们的外键是一个至关重要的数据库设计任务 - 与科学一样多的艺术。设计任务有非常具体的设计标准。 有什么标准? 解决方案 考虑主键的条件是: 唯一性 $ b 不可避免(表中没有子集的键唯一标识一行) 简单 熟悉(不应经常更改) / strong>(对用户有意义) ..

软删除是个好主意吗?

软删除是一个好主意还是坏主意? 除了实际删除数据库中的记录,您只需将其标记为 IsDeleted = true ,并且在恢复记录后,您可以将其标记为 False 。 $ b b 这是个好主意吗? 这是一个更好的想法,物理删除记录,然后将其移动到存档数据库,如果用户想要 解决方案 我说这是一个坏主意,一般来说(也许有一些例外)。 首先,您的数据库应该定期备份,因此您永远 ..

单个固定表与多个列和灵活的抽象表

我想知道,如果你有一个网站有十多种不同类型的列表(商店,餐馆,俱乐部,酒店,事件),需要不同的字段,有一个好处是创建一个表,列定义如此 示例商店: shop_id |名称| X | Y |城市|区|区域|地铁|站|地址|电话|电子邮件|网站| open_hours 或类似这样的更抽象的方法: object_id | name ------------- ..
发布时间:2017-03-13 20:54:27 数据库

如何在关系数据库中继承建模?

我的问题是关系数据库系统中的继承建模。我有规范的数据模型,我有一些字段相关的产品定价从产品表继承某些属性,我想建立这个继承在MySQL关系数据库,因此, “我们如何在关系数据库中进行继承建模?” 谢谢。 解决方案 Martin Fowler在他的“企业应用程序架构模式”一书中进行了广泛讨论。获取此书并查看: 单一表格继承 类表继承 混凝土表继承 网站应该给你一些 ..

识别和非识别关系有什么区别?

我没有能够完全掌握差异。 解决方案 标识关系是指子表中的行的存在取决于父表中的行。这可能令人困惑,因为现在常见的做法是为子表创建一个伪键,但不会将外键设置为子键的父键的父部分。正式地,“正确”的方式做到这一点是使外键的部分孩子的主键。 示例:A Person 有一个或多个电话号码。如果他们只有一个电话号码,我们可以将它存储在 Person 的列中。由于我们要支持多个电话号码,我们 ..
发布时间:2017-03-13 20:35:36 其他数据库

核心数据模型设计 - 改变“活动”对象还更改保存的对象

我正在开发我的第一个Core Data项目(在iPhone上),我真的很喜欢它。核心数据是很酷的东西。 然而,我遇到了设计难度,我不知道该如何解决,虽然我想这是一个相当普遍的情况。它涉及数据模型。 为了清楚起见,我将使用一个假想的足球游戏应用程序作为例子来说明我的问题。说有NSMO的叫做Downs和Plays。播放功能与模板一样由Downs使用。用户创建播放(例如,Bootleg,Bu ..
发布时间:2017-01-10 21:31:01 移动开发

聊天,对话,消息 - CoreData模型

在将问题标记为此问题的重复之前, a>请阅读说明。我不需要在评论中继续讨论。 所以我想为消息应用创建 CoreData 模型。像我在本主题中说的,我有三个实体: 用户 > 对话实体使用邮件定义对话用户。 好,所以我的数据模型是: 但是一切都在这里相互连接。上述答案与我的解决方案之间的唯一区别是 User 和 Message - 多种关系。我想我需要,因为没有,这是不可能知 ..
发布时间:2017-01-10 19:58:46 移动开发

Xcode一致性错误:设置无操作删除规则...是一个高级设置

在Xcode中创建数据模型后,每个对象关系都会抛出以下错误: 一致性错误: 在[对象关系]上设置无操作删除规则是高级设置 什么是Xcode试图告诉我,我该如何回应? 解决方案 Core Data使用反向关系和删除规则来保持对象图一致 假设您有A.foo B.bar和do a.foo = b 。这将自动(有效地)执行 b.bar = a 。 ..
发布时间:2017-01-10 17:57:05 移动开发

在MySQL中的链接表中实现UNIQUE

USER是PERSON,PERSON有COMPANY - 用户 - >人是一对一,人 - >公司是多对一的。 person_id是USER表中的FK。 company_id是PERSON表中的FK。 PERSON不能是USER,但USER始终是PERSON。 如果company_id在用户表中,我可以根据用户名和company_id创建一个唯一的密钥,但它不是,如果是,它将是数 ..
发布时间:2016-12-29 12:42:44 数据库

获取属性作为NSManagedObject子类的属性

我有一个名为Team的NSManagedObject(NSMO)的子类。团队与另一个名为Contract的NSMO子类有一对多的关系。合同与玩家(另一个NSMO)有1对1。我想简化我的代码,使用Team,并能够参考它的“玩家”。 我已经尝试在XCode的数据建模工具中创建一个名为players的获取属性,但没有什么成功。我尝试了许多不同的方法,但是最有意义的是把它命名为“players”,目 ..
发布时间:2016-12-07 02:40:40 移动开发

如何正确级联删除Core Data中的托管对象?

我有一个核心数据模型,它有三个实体:A,B和C. A与B有一对多的关系,B与C有多对多关系。删除规则A - > B是“级联”,B - > A是“无动作”。 B - > C的删除规则为“无操作”,C - > B为“拒绝”。 我无法对A实体执行删除。我想要发生的是以下: 我删除了一个A的实例(使用 deleteObject:) 删除会传播到与A相关联的任何B(由于“级联”删除规则) A ..
发布时间:2016-12-06 23:52:31 其它移动开发

Cassandra时间序列数据建模

现在我已经在使用分析系统的数据模型了,但我似乎无法为我的主键获得正确的设置。我观看了一大堆视频( https:// www。 youtube.com/watch?v=UP74jC1kM3w&list=PLqcm6qE9lgKJoSWKYWHWhrVupRbS8mmDA&index=9 )了解有关最佳做法(特别是有关时间序列数据)的信息。 关于PRIMARY KEYS,我似乎没有得到正确的平衡 ..
发布时间:2016-11-13 16:05:54 其他开发

MySQL数据模型到Cassandra帮助?

我试图将RDBMS模型移动到Cassandra,并且很难创建模式。这是我的数据模型: CREATE TABLE域( ID INT NOT NULL PRIMARY KEY, DomainName NVARCHAR(74)NOT NULL, HasBadWords BIT, ... ); INSERT INTO域(DomainName,HasBadWords)VALUES('d ..
发布时间:2016-11-13 15:45:54 其他开发

选择Cassandra表的分区键 - 有多少分区?

我有一个应用程序,其中一个Cassandra表的'自然'分区键似乎是'客户'。这是我们想要查询数据的主要方式,我们会得到良好的数据分布等。 但是如果有超过100万的客户,那是太许多不同的分区? 我应该选择导致分区键数量较少的分区键吗? 解决方案 但是,如果有超过100万客户,那么是否会有太多的不同分区? 否。 Murmur3Partitioner可以处理像2 ^ 64 ..
发布时间:2016-11-13 15:42:34 其他开发