我被给予ERD转换为家庭作业问题的类图。http://snag.gy/Misqv.jpg
我想知道"收据" 里面的符号是什么。收到一个实体?
实体项中关联附近的**圈是什么意思?
答案 0 :(得分:1)
圆圈表示相应关联结束多重性的下限为0(产品可以与0或更多项目关联)。
收据是一种所谓的关联类,是关联和类之间的混合。当两个对象(在本例中为Product a Inventory)之间的链接具有其自身的某些属性(此处可能是收货日期,可能是数量,价格等)时使用。所以,它是一个实体,一个实体的特例。
这是一个相应的UML图:
收据,翻译成数据库表将有两个MANDATORY外键(产品和库存,除了它自己的字段)。
答案 1 :(得分:1)
http://snag.gy/Misqv.jpg中收据内的菱形符号表示收据实体是关联实体。当您在两个现有实体之间获得多对多关系时,还会使用关联实体(除了上面Aleks的答案中给出的原因)。多对多关系在软件开发中存在问题,因此为了解决这个问题,我们在它们之间添加了称为关联实体的虚拟实体。
答案 2 :(得分:0)
我们在UML类图和数据库ERD或EERD之间有一些细微的差别, 首先在ERD中,如果您具有从N到M的基数,则必须在它们之间创建第三个表,但是在类中,您有一个对象数组,因此基本上您只需要2个类来表示3个表(2个实体,多对多关系)
第二秒,如果您在ERD / EERD实体之间有关系并且该关系也很多,则需要一个关联类 但是如果关系是1-N或N-1或1-1,则可以选择一个更好的实体/类以将其用作内部的属性/属性,而不用创建单独的类