标签: entity-relationship

候选键有什么意义?

我对数据库管理相当陌生,这个问题似乎从来没有在一个以上的句子中回答.所有其他SO答案都说"候选键是最小的超级键".这对我来说毫无意义.

候选键应该指定db记录的唯一性,对吗?主键是候选键.如果主键已经指定了唯一性,那么添加更多候选键有什么意义呢?

我见过如下记录的示例记录:

员工(ID,姓名,电话号码)

其中ID是主键,PhoneNumber是候选键.从我看到的,ID足以指定员工记录的唯一性.尽管PhoneNumbers(可能)是唯一的,但将它们指定为候选键对我来说似乎并不"简单".

database database-design entity-relationship relational-database

16
推荐指数
4
解决办法
8171
查看次数

有没有办法从EntityManager获取所有托管实体

我正在设置一个基本的测试数据util,并希望跟踪EntityManager处理的所有数据.而不是只为每个实体提供一堆列表,有没有办法一举抓住EntityManager管理的所有内容?

所以不是这样的:

EntityManager em;
List<Entity1> a;
List<Entity2> b;
...
List<Entityn> n;

cleanup() {
    for(Entity1 e : a) em.remove(e);
    for(Entity2 f : b) em.remove(f);
    ...
    for(Entityn z : n) em.remove(z);
}
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西;

EntityManager em;

cleanup() {
    List<Object> allEntities = em.getAllManagedEntities(); //<-this doesnt exist
    for(Object o : allEntities) em.remove(o);
}
Run Code Online (Sandbox Code Playgroud)

不确定这是否可行,但我只想知道经理知道它在管理什么?或者,如果您有任何想法可以轻松管理一堆实体.

persistence entity-relationship jpa

15
推荐指数
1
解决办法
2万
查看次数

在Visual Studio中生成ERD图

为了为新项目创建ERD图,我一直在使用Visual Studio的实体框架设计器.基本上我正在创建一个"虚拟项目",通过Nuget添加实体框架并绘制图表(我不使用Microsoft的实体框架,因此虚拟项目).

是否有其他方法可以在Visual Studio 2010 Ultimate中本地创建此类图表?

实体框架设计器

erd entity-relationship visual-studio entity-relationship-model

15
推荐指数
1
解决办法
2万
查看次数

ER图中的一对多关系

我试图在ER图中显示以下内容:

There are instructors and courses, a course is taught by only one instructor
whereas an instructor can give many courses.
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

我的问题是,两个图表之间是否存在差异,换句话说,我们将哪条线转变为箭头,或者唯一重要的只是箭头的方向?

另外,如果我们考虑映射基数; 它是1对多还是多对1?如果我们从课程的角度思考,那么它就是多对一的,但如果我们从教师的角度思考,那么它就是一对一的.我们如何决定这个?谢谢.

database entity-relationship relational-database

15
推荐指数
1
解决办法
7万
查看次数

rails 3关系模型的脚手架

有没有任何教程如何搭建一个使用多对多关系的简单模型?

mysql entity-relationship ruby-on-rails ruby-on-rails-3

14
推荐指数
1
解决办法
1万
查看次数

何时适合使用双向关联,何时不使用?

让我们假设我们想构建一个类似于eBay的应用程序,其中我们有一个名为Customer的实体和一个名为的实体Order.

从关系角度来看,我将其建模为:

Customer
+----+-----+
| ID | ... |
+----+-----+

Order
+----+-------------+-----+
| ID | CUSTOMER_ID | ... |
+----+-------------+-----+
Run Code Online (Sandbox Code Playgroud)

现在,当我想将其映射到JPA时,我有多种选择:

  1. 创建从Order到Customer的单向多对一关联.恕我直言,这是最接近关系模型.缺点是,为了找到给定客户的所有订单,我必须编写JPQL查询,因为客户对其订单一无所知.此外,我不能以OO自然的方式为客户添加新订单(例如customer.addOrder(aNewOrder);).

  2. 创建从客户到订单的一对多关联.这样,为了找到我可以使用的给定客户的所有订单,我可以customer.getOders()以OO自然方式为客户添加新订单.缺点是,为了找出已下达给定订单的客户,我应该使用JPQL.

  3. 创建从客户到订单的双向一对多关联.这样我就不需要编写任何JPQL查询来检索客户或已下达给定订单的客户的所有订单.缺点是增加了维护双向关联的复杂性.

因此,我没有看到关于是否必须使用单向关联或双向关联是否"正确"的明确论据.换句话说,在我看来,这一切都归结为个人偏好和模特的设计者/实施者的品味.

我是对的还是有规则可以确定给定关联的正确方向性?

orm entity-relationship hibernate jpa

14
推荐指数
1
解决办法
2589
查看次数

在SQL Server中实现一对一或一对关系

我正在使用Entity Framework 4.1数据库的第一种方法.我用过遗留数据库.在我的edmx文件中,它基于遗留数据库中的表创建了实体类,某些实体之间存在一对一或一对一的关联.

虽然我探讨了数据库表和它们之间的关系,但我没有发现数据库中是如何实现一对一或零关系的.

有关更多信息,我将我的数据库图表的一些屏幕截图及其关系和通信实体的属性放在edmx文件中:

在此输入图像描述 在此输入图像描述

sql-server entity-relationship relation sql-server-2008 entity-framework-4.1

14
推荐指数
1
解决办法
2万
查看次数

@ManyToOne映射无法保存父ID

我正在使用JPA2和EclipseLink实现

![简单的桌面结构] [1]

以下是我尝试映射的两个表和JPA注释.

public class Story implements Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    Integer id;
    @Temporal(TemporalType.TIMESTAMP)
    @Column (name="DATE_CREATED")
    Date dateCreated;
    String title;
    String description;
    @Column(name="AUTHOR_ID")
    Integer authorId;
    @Column(name="COUNTRY_ID")
    Integer countryId;
    private String reviews;

    @OneToMany(mappedBy = "story", cascade=CascadeType.ALL)
    private List<Tip> tipList;
}

public class Tip implements Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Integer id;
    private String description;
    private Integer vote;

    @ManyToOne (cascade=CascadeType.ALL)
    @JoinColumn(name="STORY_ID", referencedColumnName="ID")
    private Story story;
}
Run Code Online (Sandbox Code Playgroud)

作为一个简单的例子,我想在同一个交易中坚持一个故事和一些故事相关的提示.以下是执行此操作的代码部分:

Story newStory = new Story(title, body, ...);

EntityTransaction transaction = em.getTransaction().begin();
    boolean …
Run Code Online (Sandbox Code Playgroud)

java entity-relationship jpa

13
推荐指数
2
解决办法
4334
查看次数

ER Diagram和Database Schema有什么不同?

ER Diagrams和Database Schema有什么区别?MySQL Workbench具有绘制ER图的功能,但ER图的符号在其他绘图工具中与MySQL Workbench方法不同.

database entity-relationship

13
推荐指数
3
解决办法
4万
查看次数

实体关系图.IS A关系如何转化为表格?

我绘制了一个简单的ER图

我只是想知道,ER图中的ISA关系如何转换为数据库中的表.

会有3张桌子吗?一个人,一个学生,一个老师?

或者会有2张桌子吗?一个用于学生,一个用于教师,每个实体具有人+属性的属性?

或者是否会有一个包含所有4个属性的表,并且表中的一些正方形为空,具体取决于它是否是该行中的学生或教师?

注意:我忘记添加此内容,但ISA关系已完全覆盖,因此一个人必须是学生或教师.

database diagram entity-relationship isa

13
推荐指数
2
解决办法
4万
查看次数