问题标签 [entity-relationship]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oop - 了解何时对域关系建模以及如何处理上下文关系
我是领域建模的新手,所以请原谅我问了几个基本问题。我的第一个问题是关于知道何时对域关系建模。我发现有时我觉得所有类似乎都以某种方式与大多数其他类相关,我不清楚何时应该直接对这些关系建模(通过在一个类中持有对另一个类的引用)。
例如,假设我有一个与 Orders 集合相关的 Person 类,并且每个 Order 都与 Products 集合相关(请原谅这个缺乏想象力的例子)。这些实体中的每个 od 在数据库中都有一个对应的表。如果我正在编写一些处理与 Person 关联的产品的客户端逻辑(通过该人的订单),那么拥有 Person.Products 集合似乎很诱人,特别是因为我可以制作一些 SQL 来获取此集合而无需拉回 Persons Orders 集合。这是好的还是坏的设计?如果处理这个问题的更好方法是什么?
其次,关系本质上是上下文的情况呢?继续前面的示例,说我想在人员方法中运行的一些业务逻辑需要处理人员的所有关联订单,这些订单包含特定的产品(即人员订单集合的子集)。我可以构造一些 SQL 来很容易地返回这个子集。问题是我在哪里公开结果?我是否应该在 Person 上放置一个方法,该方法接受 Product 参数并返回 Orders 集合,以便客户端代码看起来像这样?
实体是否应该有多个这样的方法来公开它们关系的不同子集,或者一个人是否应该只有一个 Orders 集合并以其他方式处理子集?
谢谢
oop - 在哪里公开域模型中特定 SQL 查询的结果
这些示例中的哪一个是公开包含特定产品的特定人员的订单集合的最佳方式,为什么?或者也许有更好的方法来一起做这件事?(对不起,我是域建模的新手)。使用 SQL 查询从数据库中提取 Orders 列表并转换为 List 集合。
一个人有一对多的订单,一个订单有一对多的产品。
mysql - MySQL中的外键创建问题
我已经按照这篇文章:http ://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html在两个表之间创建外键。每一次尝试都失败了。有什么我想念的吗?!
这真的很令人沮丧,我根本没想到会遇到这个问题!
谢谢。
sql - 您最有用的数据库标准是什么?
我有一些想法,一些是我随着时间积累的,但我真的很想知道是什么让你在建模数据库时顺利进行:
- 表名匹配主键名和描述键
- 模式按功能区域划分
- 尽可能避免使用复合主键(使用唯一约束)
- Camel Case 表名和字段名
- 不要使用 tbl_ 为表添加前缀,也不要使用 SP_ 为 procs 添加前缀(没有匈牙利符号)
- OLTP 数据库应该至少在 BCNF / 4NF
entity-framework - 实体框架添加到交叉表
我刚刚开始跳入 EF,似乎无法做一些看似简单的事情。
这是我的问题和支持信息。
任何帮助或建议都将得到极大的利用。
我有一个用户表和一个组表。在它们之间是一个 UserGroups Intersection 表,允许用户属于任意数量的组。
组表已经填充了值。
我的问题是如何向该用户添加组,以便在 Intersection 表中创建用户和组之间的关系。
我的主键自动递增。
这是我的数据库结构:
我的 EF 结构如下所示:
在此先感谢,如果我解决了这个问题,我会更新这篇文章。
问候
伊恩
data-modeling - 实体关系建模:如何实现实体“角色”?
我最近阅读了一些关于数据建模的文章,并且对实体可能扮演的角色有疑问。
考虑一个简单的案例,您有一家公司,一家公司可以是供应商、客户、分销商等,也可以是这些角色的组合。因此,X 公司可能既是供应商又是客户。
在数据级别下,您可能有一个 CompanyS 表,然后是 SupplierS、CustomerS 等引用 Company 表的表。至少我认为这就是它的表现方式。
好的,所以在应用程序领域的某个地方,您有 CustomerS 和 SupplierS 等的类。每个都由一个公司组成,然后是该特定类别的其他任何特殊之处。
只要我们一次只使用一个实体类,这一切都很好,对我来说很有意义。如果我们想从一家公司开始,看看它扮演什么角色怎么办?所以在一个应用程序中,我可能会拉出一个公司,然后看到它是供应商和分销商。
现在我可以想到几种不同的方法来做到这一点,但我觉得因为这个问题域太老了,所以必须有一些经过验证的真实模式来对这些概念进行建模。
因此,我在这里寻找的是在应用程序级别对实体角色进行建模的常用策略或模式。关于这个特定主题的具体参考资料将不胜感激(无论是博客、书籍还是其他)。
xsd - 用于描述关系数据库模式的标准数据库中性 XSD
有人知道供应商中立的 XSD 来描述关系数据库模式吗?我们的系统需要获取有关数据库结构的信息:
- 表
- 列和类型
- 主键和外键约束
- 索引
- ETC
以独立于供应商的方式并将其存储在 XML 文件中以供以后处理。
在我们做我们通常做的事情并自己动手之前。我想做一些研究,看看是否存在人们正在标准化的现有 XSD,因为我认为这对建模工具等并不少见。我在谷歌上没有找到任何不是数据库供应商特定的东西。如果您知道现有的公共标准,我将非常感谢您提供链接。
提前致谢,
特伦斯
entity-relationship - ER 建模子类型如何在数据库中实现?
对不起,如果这太简单了,但我最近发现了很多关于 ER 建模的文档,但所有这些似乎都跳过了实际的实现,我只想澄清一下。
子类型是否只是具有超类型的外键以及属于子类型的属性的第二个表?无论如何,这对我来说最有意义。子类型的主键通常也会与超类型共享(子类型的主键对超类型有外部约束)?
entity-framework - 如何在实体框架 (.Net 4.0) 中使用导航属性作为主键?
我正在尝试使用 VS2010/.Net 4.0 在实体框架中引入的模型优先方法,现在我真的不知道该怎么做。我从以下实体开始:
其中Name
、Address
和Duration
是我定义的复杂类型。
现在,我想添加一个实体,它作为从toRSVP
的多对多映射工作,但也包含一些我称为的复杂类型的额外信息。该表可能看起来像这样:Contacts
Events
Payment
当尝试在模型设计器中构造这个实体时,我想通过向各个表添加多对多关系来添加ContactId
和字段,但是当我这样做时,我无法选择这两个字段作为主键EventId
表(或实体的实体键)。
我该怎么做呢?
.net - 实体框架如何判断是否应该在关系上使用多个“一”或“零或一”?
作为我们代码生成过程的一部分,我正在以编程方式创建一个 edmx 文件,我想知道当您“从数据库更新模型”时,设计师是如何决定使用“1”或“0..1”来建立关系的。对此有何见解?谢谢
编辑:
好的,我认为当“多”端是可为空的外键时,它使用“0..1”,如果它不可为空,则使用“1”。谁能证实这一点?