我正在制作一个 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
我正在探索一个简单的记分应用程序,用于玩拉米纸牌游戏作为练习。我正在为 iOS 构建它,但这有点无关紧要,因为它使用 SQLite 数据存储,因此数据结构适用于任何环境。让我设置一个用例:
要开始记分,您首先要设置玩家。我希望能够保留玩家,以便您可以跟踪统计数据等。因此,您要么创建新玩家,要么选择现有玩家。
然后,当您玩游戏时,您会添加每个玩家的分数的回合。
游戏结束后,玩家和得分都会被保存,以便您可以查看过去的游戏日志。
我遇到的问题是一个玩家可以玩很多游戏,这些游戏有很多轮。但是,当观看一场比赛时,它有很多轮,每个轮都有很多玩家(显示他们的分数)。
为此构建 ERD 表明我对这种数据结构的看法是多么失控。

我好像在转圈子。有没有任何构建这些数据的示例,或者有人可以告诉我我在哪里偏离了轨道?
database-design entity-relationship relational-database data-structures
这是场景:
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,但结果是相同的。有办法解决这个问题吗?
我刚刚开始我的领域驱动设计职业之旅。我的课程模型有问题。下面是一个简化的类图。
我有两个有界上下文:Population和Issues。
Person是用至少一个文档创建的。Person可以报告新的Issue附加多个IssueAttachment。
我想将文件存储集中为单个File实体,并将其保留在单个数据库表中。中心化的原因是在持久化之前执行常见操作,例如数据压缩或获取 md5 哈希。此外,将所有文件存储在单个表中还简化了测试数据转储过程,因为我必须忽略单个表来排除大量 blob。
然而,在阅读了很多文章之后,我可以得出结论,不建议在不同上下文之间共享实体。
您能给我一些关于如何处理此类问题的设计建议吗?
architecture entity-relationship domain-driven-design bounded-contexts
我使用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
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
我目前正在设计一个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
实体关系假设:
因此,我有一个TestplanTeststep表和一个Screenshot表相关的TestplanTeststep表.
问题:但我如何用ERD表达这个?
当我回顾第2点时,那么a Testplan有N 是不正确的Screenshots,因为a Testplan不能有Screenshots.实际上TestplanTeststep有N Screenshots,但是自然ERD的概念模型不是物理的(sql表).
再次提问:我如何用ERD表示a Screenshot属于a TestplanTeststep但不属于Testplan?
我是Entity Framework的初学者.我有一些条款会产生问题.我正在考虑代码优先架构
通过在父类中创建子类的属性来解决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)一个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)
这是正确的方法吗?
\*-\*通过IList<class>在两个类中添加来解决.
但我解决问题,我有2班Categories和Products.
在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
我有两个型号:
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
sql ×2
architecture ×1
asp.net ×1
c# ×1
database ×1
entity ×1
erd ×1
hibernate ×1
jpa ×1
mysql ×1
orm ×1
postgresql ×1
primary-key ×1
seam ×1
triggers ×1