概念图抽象和空值

问题描述 投票:0回答:1

在概念方案中,如果一个类中有一个属性,其中 1/10 的情况有值,而其余 9/10 的情况没有值,那么最好采用哪种设计方案?我们应该将属性保留在类/实体中,还是将其分开然后创建关联的解决方案? 我应该把它保留在班级中,然后在计划重组期间对其进行管理。

database uml entity-relationship class-diagram
1个回答
0
投票

从概念上讲,在 UML 中,属性要么是属性,要么是拥有的关联端。 此外,在这两种情况下,重数 0..1 具有相同的效果。换句话说,两种设计在 UML 中几乎是等效的。

从技术上讲,在数据库中它有点不同:

  • 关联是通过与另一个表的联合来实现的。进行连接会产生一些开销。这样做的好处是可以节省一点空间。但这种节省很小,因为大多数数据库引擎确实已经为空值节省了空间。
  • 属性可用,没有任何开销,也可以处理 null。

由您决定您最看重哪些优势以及您希望避免哪些不便。根据经验,与只有一个属性的类关联是一件痛苦的事情。属性实现通常是首选选项。然而,它不是关于单个属性,而是关于多个属性,单独的类的选项再次闪耀,因为它有助于数据库规范化。

© www.soinside.com 2019 - 2024. All rights reserved.