标签: entity-relationship

JPA - 实体设计问题

我正在开发Java桌面应用程序并使用JPA进行持久化.我有一个问题如下:

我有两个实体:

  • 国家

国家/地区具有以下属性:

  • 国名(PK)

City具有以下属性:

  • 城市名称

现在因为在两个不同的国家/地区可以有两个同名的城市,因此数据库中的City表的primaryKey是由CityName和组成的复合主键CountryName.

现在的问题是如何实现的主键City作为一个Entity在Java中

   @Entity
   public class Country implements Serializable {
       private String countryName;

       @Id
       public String getCountryName() {
           return this.countryName;
       }
   }

  @Entity
  public class City implements Serializable {
           private CityPK cityPK;
           private Country country;

           @EmbeddedId
           public CityPK getCityPK() {
               return this.cityPK;
           }
   }


   @Embeddable
   public class CityPK implements Serializable {
       public String cityName;
       public String countryName;
   }
Run Code Online (Sandbox Code Playgroud)

现在我们知道上面代码中的from CountryCityis OneToMany之间的关系,我 …

java entity entity-relationship jpa object-relationships

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

Doctrine2 SQLSTATE [42000]:语法错误或访问冲突:1064

user.php的;

<?php

namespace Acme\DemoBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="like")
 * @ORM\InheritanceType("SINGLE_TABLE")
 * @ORM\DiscriminatorColumn(name="itemtype", type="integer")
 * @ORM\DiscriminatorMap({
 *  "1" = "LikeArticle",
 *  "2" = "LikePage",
 *  "3" = "LikeSite",
 * })
 */
class Like
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="integer")
     */
    protected $userid;

    /**
     * @ORM\ManyToOne(targetEntity="User", inversedBy="likes")
     * @ORM\JoinColumn(name="userid", referencedColumnName="id")
     */
    protected $user;
}
Run Code Online (Sandbox Code Playgroud)

LikePage.php;

<?php

namespace Acme\DemoBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="like_page")
 */
class …
Run Code Online (Sandbox Code Playgroud)

mysql sql entity-relationship symfony doctrine-orm

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

python 3中的SQLAlchemy ER图

有没有人知道从python 3中的SQLAlchemy模型制作ER图的方法.我找到了sqlalchemy_schemadisplay,它是python 2,因为pydot和ERAlchemy只是python 2.

python entity-relationship sqlalchemy python-3.x

7
推荐指数
2
解决办法
3904
查看次数

多人/单一测验游戏的数据库设计

我在这里看到很多问题,但没有人适应我的问题.我正在尝试创建一个可扩展的ER模型,如果我想添加更多数据,几乎不会破坏任何东西,所以我试图创建的是:

有两种类型的用户,比如Admin和Worker,他们有不同的角色.

管理员可以做一个问题的CRUD,也可以创建一个用户可以加入一起玩的房间(这只是一个名字,像Kahoot!那样)但也许在其中创建更多属性是个好主意,比如世界卫生组织正在这个房间里玩,每个人都要点,但是当我向你展示设计时,让我们再谈谈它.

好吧,就我的设计而言,我有:

表用户包含:

_id
username
password
date_creation
Run Code Online (Sandbox Code Playgroud)

这是一个默认的,但是我想知道如何定义角色,如果它是管理员或工人,比如isAdmin:true然后我检查这个Bool?或者我可以创建另一个角色表并将其连接到用户表?

但也许我必须为两者创建一个表,我的意思是有一个管理员,它有一个密码和一些功能,然后使用户工具有另一个密码和其他功能.

然后我想让问题表包含:

_id
question_name
answers[1,2,3,4]
correctAnswer or answers because it can be multi option chooser
topic
isExamQuestion
dificulty
Run Code Online (Sandbox Code Playgroud)

那么Room表应该包含:

_id
name
capacity
type (game can be as a group or solo) that's why this attribute
exam (This should be a flag to know if this question is for an exam or not (It can be for EXAM or PRACTISE)
ranking (This is the top X from 1 to X)
don't …
Run Code Online (Sandbox Code Playgroud)

mysql database postgresql database-design entity-relationship

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

添加实体模型时出现错误3007

当我将实体模型添加到我的解决方案时,我收到错误3007.

我找到了这些链接:

好的探索

简短的回答

关于此错误:

错误1错误3007:从第89,94行开始映射片段中的问题:非主键列[Person_ID]正在两个片段中映射到不同的概念侧属性 - 数据不一致是可能的,因为相应的概念侧属性可以独立修改.

他们的回答:我同意他们的结论,即只需删除标量属性Person_ID并保留导航属性我的问题就解决了.然而,由于我正在动态构建我的数据库并且我的实体经常更新,因此这不是很可扩展.我不希望每次更新它时都要经历并清理我的实体.

我的问题:有没有办法通过纠正EF构建实体的方式来修复错误?或者有没有办法通过代码删除标量属性?也许甚至有一些我可以忽视的选择.

entity-relationship entity-framework

6
推荐指数
2
解决办法
9517
查看次数

用于将SQL代码转换为图表的工具

任何人都可以说某种方法将SQL代码转换为ERD等数据图表吗?对于像MySQL或一般SQL的som DBMS

mysql sql database entity-relationship

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

在MongoDB中以一对一的关系存储文档引用的正确方法

我有两个MongoDB集合user,customer它们是一对一的关系.我是MongoDB的新手,虽然我安装了Mongoose,但我正在尝试手动插入文档.我不确定哪种是在MongoDB中存储文档引用的正确方法.

我正在使用规范化数据模型,这是我的Mongoose模式快照customer:

/** Parent user object */
user: {
    type: Schema.Types.ObjectId,
    ref: "User",
    required: true
}
Run Code Online (Sandbox Code Playgroud)

用户

{ 
    "_id" : ObjectId("547d5c1b1e42bd0423a75781"), 
    "name" : "john", 
    "email" : "test@localhost.com", 
    "phone" : "01022223333", 
}
Run Code Online (Sandbox Code Playgroud)

我想usercustomer文档中引用这个文档.以下哪项是正确的 - (A)或(B)?

客户(A)

{ 
    "_id" : ObjectId("547d916a660729dd531f145d"), 
    "birthday" : "1983-06-28", 
    "zipcode" : "12345", 
    "address" : "1, Main Street", 
    "user" : ObjectId("547d5c1b1e42bd0423a75781")
}
Run Code Online (Sandbox Code Playgroud)

客户(B)

{ 
    "_id" : ObjectId("547d916a660729dd531f145d"), 
    "birthday" : "1983-06-28", 
    "zipcode" : "12345", 
    "address" …
Run Code Online (Sandbox Code Playgroud)

entity-relationship mongodb relationships

6
推荐指数
2
解决办法
3733
查看次数

doctrine2:如何在不丢失数据的情况下将一对多转换为多对多转换

在我的应用程序中,我想在不丢失数据的情况下将一对多转换为多对多:

从:

/**
 * @ORM\ManyToOne(targetEntity="\AppBundle\Entity\FoodAnalytics\Recipe", inversedBy="medias")
 * @ORM\JoinColumn(name="recipeId", referencedColumnName="id", onDelete="CASCADE")
 */
protected $recipe;
Run Code Online (Sandbox Code Playgroud)

至:

/**
 * @ORM\ManyToMany(targetEntity="\AppBundle\Entity\FoodAnalytics\Recipe", inversedBy="medias")
 * @ORM\JoinTable(
 *     name="media_recipes",
 *     joinColumns={@ORM\JoinColumn(name="mediaId", referencedColumnName="id", onDelete="CASCADE")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="recipeId", referencedColumnName="id", onDelete="CASCADE")}
 * )
 */
protected $recipes;
Run Code Online (Sandbox Code Playgroud)

当我抛弃我的学说谢谢更新时,它说它会丢弃数据,而不是我想要的:

CREATE TABLE media_recipes (mediaId INT UNSIGNED NOT NULL, recipeId INT UNSIGNED NOT NULL, INDEX IDX_C2BE64FC27D9F5AC (mediaId), INDEX IDX_C2BE64FC6DCBA54 (recipeId), PRIMARY KEY(mediaId, recipeId)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
ALTER TABLE media_recipes ADD CONSTRAINT FK_C2BE64FC27D9F5AC FOREIGN KEY (mediaId) REFERENCES media (id) ON …
Run Code Online (Sandbox Code Playgroud)

mysql entity-relationship doctrine symfony doctrine-orm

6
推荐指数
2
解决办法
1729
查看次数

在Visual Studio 2015中生成实体关系图

您能告诉我如何为使用VS 2015创建的数据库1(见下文)生成ER图

在此输入图像描述

提前致谢

sql database entity-relationship visual-studio visual-studio-2015

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

Android Room库-选择嵌入式实体的所有字段

我有两个具有外键关系的实体:productcategory

@Entity(primaryKeys = "id")
public class Product {
    public final long id;

    @NonNull
    public final String name;

    @ForeignKey(entity = Category.class, parentColumns = "id", childColumns = "categoryId")
    public final long categoryId;

    public Product(long id, @NonNull String name, long categoryId) {
        this.id = id;
        this.name = name;
        this.categoryId = categoryId;
    }
}

@Entity(primaryKeys = "id")
public class Category {
    public final long id;

    @NonNull
    public final String name;

    public Category(long id, @NonNull String name) {
        this.id = id; …
Run Code Online (Sandbox Code Playgroud)

android entity-relationship android-room

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