标签: entity-relationship

客户与购物车中的订单之间的关系

我正在制作一个 ERD,以便我可以构建我的购物车。

我对订单和客户之间的关系感到困惑。

如果我没记错的话,客户可以订购很多产品,

1 位客户可下订单

所以

Create Table OrderProduct(
orderProductId int PRIMARY KEY,
productID int,
Quantity int
)

Create Table Orders( 
OrderId int PRIMARY KEY,
orderProductId int, //foregin key
CustomerId int,
date
)
Run Code Online (Sandbox Code Playgroud)

我是正确的,还是 mu 表结构错误?

sql database shopping-cart database-design entity-relationship

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

游戏记分应用程序的数据结构/模型(避免多对多对多)

我正在探索一个简单的记分应用程序,用于玩拉米纸牌游戏作为练习。我正在为 iOS 构建它,但这有点无关紧要,因为它使用 SQLite 数据存储,因此数据结构适用于任何环境。让我设置一个用例:

要开始记分,您首先要设置玩家。我希望能够保留玩家,以便您可以跟踪统计数据等。因此,您要么创建新玩家,要么选择现有玩家。

然后,当您玩游戏时,您会添加每个玩家的分数的回合。

游戏结束后,玩家和得分都会被保存,以便您可以查看过去的游戏日志。

我遇到的问题是一个玩家可以玩很多游戏,这些游戏有很多轮。但是,当观看一场比赛时,它有很多轮,每个轮都有很多玩家(显示他们的分数)。

为此构建 ERD 表明我对这种数据结构的看法是多么失控。

愚蠢的ERD

我好像在转圈子。有没有任何构建这些数据的示例,或者有人可以告诉我我在哪里偏离了轨道?

database-design entity-relationship relational-database data-structures

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

将插入的id插入到另一个表中

这是场景:

create table a (
 id serial primary key,
 val text
);

create table b (
 id serial primary key,
 a_id integer references a(id)
);

create rule a_inserted as on insert to a do also insert into b (a_id) values (new.id);
Run Code Online (Sandbox Code Playgroud)

b我正在尝试创建一条引用a插入表时的记录a。但我得到的是new.idnull,因为它是从序列自动生成的。我也尝试了触发器AFTER插入FOR EACH ROW,但结果是相同的。有办法解决这个问题吗?

sql postgresql triggers entity-relationship primary-key

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

领域驱动设计共享实体

我刚刚开始我的领域驱动设计职业之旅。我的课程模型有问题。下面是一个简化的类图。

在此输入图像描述

我有两个有界上下文:PopulationIssues

Person是用至少一个文档创建的。Person可以报​​告新的Issue附加多个IssueAttachment

我想将文件存储集中为单个File实体,并将其保留在单个数据库表中。中心化的原因是在持久化之前执行常见操作,例如数据压缩或获取 md5 哈希。此外,将所有文件存储在单个表中还简化了测试数据转储过程,因为我必须忽略单个表来排除大量 blob。

然而,在阅读了很多文章之后,我可以得出结论,不建议在不同上下文之间共享实体。

您能给我一些关于如何处理此类问题的设计建议吗?

architecture entity-relationship domain-driven-design bounded-contexts

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

尝试在"一个"实体上设置"多个"时,奇怪的JPA一对多行为

我使用JPA(特别是Hibernate)映射了两个实体.这些实体有一对多的关系(我简化了演示):

@Entity
public class A {

    @ManyToOne
    public B getB() { return b; }
}

@Entity
public Class B {

    @OneToMany(mappedBy="b")
    public Set<A> getAs() { return as; }
}
Run Code Online (Sandbox Code Playgroud)

现在,我试图通过使用关系的单侧/非所有者侧的setter(即被引用的表)来创建这些实体的两个实例之间的关系:

em.getTransaction().begin();

A a = new A();
B b = new B();
Set<A> as = new HashSet<A>();
as.add(a);
b.setAs(as);

em.persist(a);
em.persist(b);
em.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)

但是,关系不会持久保存到DB(为实体A创建的行不引用为实体B创建的行).为什么会这样?我希望它能起作用.

此外,如果我从@OneToMany注释中删除"mappedBy"属性,它将起作用.再次 - 为什么会这样?以及删除"mappedBy"属性可能产生的影响是什么?

entity-relationship hibernate jpa

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

如何在hibernate中创建列包含实体类中的一些属性

我想在实体缝中属性.但我不想在数据库中创建列.例如我的实体是;

    @Entity
    public class Category extends Item implements Serializable {

    private static final long serialVersionUID = -1154500438874768209L;
        private List<Product> example;
    private List<Item> children;

    public void addChild(Item child) {
        if (children == null) {
            children = new ArrayList<Item>();
    }

    if (!children.contains(child)) {
        children.add(child);
    }
     }

     @OneToMany(cascade = CascadeType.ALL)
     public List<Item> getChildren() {
            return children;
     }

     public void setChildren(List<Item> children) {
          this.children = children;
     }

     public void setExample(List<Product> example) {
       this.example = example;
     }

     public List<Product> getExample() {
       return example;
     }
   } …
Run Code Online (Sandbox Code Playgroud)

database-design entity entity-relationship seam hibernate-annotations

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

关系数据库设计:如何设计长路径的关系?

我目前正在设计一个MySQL数据库,我遇到了以下问题,我不确定如何正确解决/设计.

我有实体:(简化)

Providers, Addresses, Letters, Faxes
Run Code Online (Sandbox Code Playgroud)

现在:

Adresses belong to providers, Providers have many Addresses

Letters belong to Addresses, Addresses have many Letters

Faxes belong to Letters, Letter have many Faxes
Run Code Online (Sandbox Code Playgroud)

所以现在我正在使用带有此数据库模型的ORM在PHP中工作,并发现自己处于一种情况,即我有一个传真对象的实例以及加载相应提供者的内容.

现在,这将要么花费我一个大的连接或几个查询.

我需要走的路是:

Fax -> Letter -> Address -> Provider
Run Code Online (Sandbox Code Playgroud)

现在我在想是否应该建立传真和提供商之间的直接关系,这将解决这个问题.但这不是多余的,而是以双重努力为代价的吗?如果传真和提供商之间的关系发生变化怎么办?然后我会调整两个关系路径.

这样做的首选方式是什么?我的例子有点简化.实际上,我必须走的路要长一点.

mysql orm database-design entity-relationship relational-database

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

如何在实体关系中显示sql联结表

实体关系假设:

  1. N Testplan有M Teststep.
  2. 1 Testplan有N截图

因此,我有一个TestplanTeststep表和一个Screenshot表相关的TestplanTeststep表.

问题:但我如何用ERD表达这个?

当我回顾第2点时,那么a Testplan有N 是不正确的Screenshots,因为a Testplan不能有Screenshots.实际上TestplanTeststep有N Screenshots,但是自然ERD的概念模型不是物理的(sql表).

再次提问:我如何用ERD表示a Screenshot属于a TestplanTeststep但不属于Testplan

erd entity-relationship entity-relationship-model

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

实体框架中虚拟的目的是什么?

我是Entity Framework的初学者.我有一些条款会产生问题.我正在考虑代码优先架构

  1. 通过在父类中创建子类的属性来解决1对1,在子类中,我们将父类的id标记为外键.

    喜欢

    public class Parent{
       //code 
       public Child Child{get; set;}
    }
    
    public class Child{
       [ForeignKey("Parent")]
       public int ParentId{get; set;}
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 一个1对多的关系,我们使用

    public class Parent {
       //code 
       public IList<Child> Child { get; set; }
    }
    
    public class Child {
       [ForeignKey("Parent")]
       public int ParentId{get; set;}
    }
    
    Run Code Online (Sandbox Code Playgroud)

    这是正确的方法吗?

  3. \*-\*通过IList<class>在两个类中添加来解决.

但我解决问题,我有2班CategoriesProducts.

Product类中,属性定义为

public class Products {
   public virtual Category Category { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Category课堂上,产品以这种方式被调用

public …
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-relationship entity-framework entity-framework-5

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

EF Code First Fluent API - 级联删除

我有两个型号:

public class User
{
   .....
   public virtual UserProfile UserProfile { get; set;}
}


public class UserProfile
{
   .....
   public virtual User User { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

User是主表和关系是一一对应的.一个用户只有一个UserProfile.

如何使用EF CodeFirst Fluent API定义User和UserProfile之间的关系,以便当我从User表中删除一个用户时,Userprofile中的用户配置文件也会被删除?

entity-relationship entity-framework asp.net-mvc-5 asp.net-identity-2

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