标签: entity-relationship

为什么我们不为 NoSQL 数据库画 ER

我知道 NoSQL 数据库(例如 MongoDB)无法使用实体关系“ER”图进行建模,因为它是无模式的,但我可以对 UML 进行建模,并且它显示了属性之间的关系,那么有什么区别以及为什么呢?

entity-relationship mongodb nosql

3
推荐指数
1
解决办法
3163
查看次数

如何将背景颜色添加到 PlantUML 中的实体关系图

我目前正在使用 PlantUML 来设计数据库的 ERD。一切都很好,图表已经完成,但我正在尝试为我的实体添加背景颜色,以区分它们各自的模式。

我正在考虑实体的背景颜色,或者可能是一个将实体保存在其中的彩色矩形。

我尝试使用skinparam实体的名称及其别名......

skinparam entity {
  backgroundColor<<usr>> DarkOrchid
}
Run Code Online (Sandbox Code Playgroud)
skinparam entity {
  backgroundColor<<User>> DarkOrchid
}
Run Code Online (Sandbox Code Playgroud)

这些都不起作用...任何人都可以帮忙吗?

谢谢

========= 编辑

根据要求,举一个小例子:

'==========='
'auth schema'
entity "User" as usr {
  *id : number <<PK>>
  --
  password: varchar
  salt: varchar
  role: number <<FK>>
  last_login_at : datetime
  is_active : boolean
}

entity "User Role" as url {
  *id : number <<PK>>
  --
  name: varchar
  clearance_lvl: text
  is_active : boolean
}

'====================='
'personnel data schema'

entity "Professor" as prof { …
Run Code Online (Sandbox Code Playgroud)

diagram erd entity-relationship plantuml

3
推荐指数
1
解决办法
4512
查看次数

实体框架 - 如何使用实体关联?

当我的数据库中的表具有PK/FK关系(int)时,当它们由实体框架设计器建模时,一切都应该如此.我可以编写下面的代码,一切似乎都可以正常工作但是当我运行代码时,我在项目上得到一个错误.Status.StatusName说Object引用没有设置为对象的实例.我想我的印象是,当您填充父实体时,框架会填充关联的实体.

    Dim db As New MyDbModel.MyDbEntities()

    Dim project As MyDbModel.Project = (From p In db.Project Where p.ProjectID = 1).First

    Response.Write(project.ProjectName)        
    Response.Write(project.Status.StatusName)
Run Code Online (Sandbox Code Playgroud)

linq-to-entities entity-relationship entity-framework associations

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

SaveChanges()Entity Framework 4.1的问题

我在保存对数据库的更改时遇到问题.

我正在更新控制器中的模型A,但是当我使用SaveChanges()保存更改时,我最终在数据库中为B创建了一个重复的项目.

在调用UpdateModel()之后,我检查了Bs属性,它就像我预期的那样,在调用SaveChanges()后,如果我检查Bs属性,我将看到Id完全不同(新Id和新条目).

我的班级与此类似:

public class A
{
    [HiddenInput(DisplayValue = false)]
    public int AId { get; set; }

    public string Name { get; set; }

    public virtual ICollection<B> Bs{ get; set; }
}

public class B
{
    [HiddenInput(DisplayValue = false)]
    public int BId { get; set; }

    public string Name { get; set; }

    public virtual ICollection<A> As{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的控制器是这样的:

    [HttpPost]
    public ActionResult Edit(A theA)
    {
        try
        {
           db.Entry(theA).State = EntityState.Modified;

           foreach (var item in theA.Bs)
           { …
Run Code Online (Sandbox Code Playgroud)

entity-relationship many-to-many entity-framework-4.1

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

如何从Power Designer 15中的ER图生成SQL表?

我想在Powerdesigner中从ER图生成Sql表,但是,我不知道我该怎么做?我应该使用哪些工具?

sql diagram entity-relationship sql-server-2008 powerdesigner

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

在Core Data中替换多对多关系中的实体

当我从一对多关系的一侧检索实体时,我从集合中创建一个可变数组,该数组是关系中的实体集合.我操纵,编辑或以其他方式更改这些实体,可能删除现有或添加新实体.通过更改后,我只需使用数组创建一个新集,然后将原始集替换为我创建的集,如下所示:

self.myOneSideEntity.theManySideEntitiesRelationship = [NSSet setWithArray:myNewArrayOfEntities];
Run Code Online (Sandbox Code Playgroud)

在我看来,更换套装可能不会删除旧成员.他们发生了什么?这是编辑相关对象集合的正确方法吗?我是否会留下任何类型的孤儿或违反这种技术的最佳做法?

我的关系在一侧设置了反向级联删除,在许多方面无效,反向关系不是可选的.

entity-relationship core-data ios

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

在EntityFramework CodeFirst模型中链接两个表

我正在尝试通过转换我拥有的Web表单应用程序来学习asp.net MVC.这是一个房间预订应用程序,其中有一个客户表(tblCustomerBooking)与tblRental有一对多的关系 - 所以一个客户可以预订多个房间.彼此匹配的字段是tblCustomerBooking.customer_id - > tblRental.customer_ref

我正在尝试首先使用代码 - 并构建一个模型类 - 但我无法弄清楚如何链接这两个表,因此当我查询dbContext时,它将返回一个客户,其中有一个或多个租用同一型号.

我的表定义是:

CREATE TABLE [dbo].[tblCustomerBooking](
    [customer_id] [bigint] IDENTITY(1,1) NOT NULL,
    [room_id] [bigint] NULL,
    [customer_name] [varchar](110) NULL,
    [customer_email] [varchar](50) NULL
     CONSTRAINT [PK_tblCustomerBooking] PRIMARY KEY CLUSTERED 
(
    [customer_id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, 
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

CREATE TABLE [dbo].[tblRental](
    [rental_id] [bigint] IDENTITY(1,1) NOT NULL,
    [room_id] [bigint] NOT NULL,
    [check_in] [datetime] NOT NULL,
    [check_out] [datetime] NOT …
Run Code Online (Sandbox Code Playgroud)

entity-relationship entity-framework code-first

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

为什么ERD中不允许使用特定的基数?

在关于实体关系图的每个教程中,我都知道不允许为关系指定固定的基数.只有关于ERD的非正式评论才能澄清飞行员的数量exactly 2.

因此,例如,航班和飞行员之间的关系,每个航班正好有2名飞行员,必须表示为:

<flight> 0..N <------> 1..N <pilot>
Run Code Online (Sandbox Code Playgroud)

而不是

<flight> 0..N <------> 2 <pilot>
Run Code Online (Sandbox Code Playgroud)

我的符号是0..N=可选的,很多; 1..N=强制性,许多,1=强制性,一个.

这种限制是否普遍?它背后的原因是什么?

编辑:澄清了我的记号.

编辑:我可以看到两个关系如何强制执行相同的约束:

         0..N <------> 1
<flight>                 <pilot>
         0..N <------> 1
Run Code Online (Sandbox Code Playgroud)

但是,查询飞行员是否在某个特定航班上的查询变得非常难看,因为您必须检查两个属性中的每一个.如果属性数量增加(例如,对15名空乘人员),则查询变得完全无法管理,并且架构几乎无法管理.

database-design erd entity-relationship database-schema

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

ERD关系 - 将2个可选实体连接到1个实体

我有这3个实体的学生,工作人员和讨论.
他们的关系是这样的:1个学生可以发表很多讨论; 1名工作人员可以发表许多讨论 但是1次讨论只能由学生或工作人员发布.是否可以让外键studentID和staffID都驻留在讨论实体中?但这样做可能会使其中的每条记录在这两个属性中都有1个空值.在此输入图像描述

database-design erd uml entity-relationship class-diagram

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

使用Api平台,自动将用户分配给对象(OneToMany)

这是我的情况:

我有一个Article实体。每篇文章都有一个所有者(a User)。用户可以拥有许多文章。用户可以通过API发布文章。

我想user_id基于Bearer令牌自动设置文章的列(我正在使用JWT auth)。

我找不到任何有关如何执行此操作的文档。有人可以帮忙实现此目标吗?

注意:我正在寻找避免可能的情况下避免在Symfony中使用其他扩展(或控制器)的解决方案。我相信Api Platform应该可以使用内置技术来实现这一目标,但是我可能是错的。

这是我的实体:

用户:

<?php

namespace App\Entity;

use ApiPlatform\Core\Annotation\ApiResource;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Security\Core\User\UserInterface;

/**
 * @ApiResource()
 * @ORM\Table(name="users")
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 * @UniqueEntity(fields="email", message="Email already taken")
 */
class User implements UserInterface, \Serializable
{

    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string $password
     *
     * @ORM\Column(type="string", length=64)
     * @Assert\NotBlank()
     */
    private $password;

    /**
     * @var …
Run Code Online (Sandbox Code Playgroud)

php entity-relationship doctrine symfony api-platform.com

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