Answers:
您可能想要尝试遵守尽可能延迟架构决策的原则。想法是,与现在相比,您对问题域的了解会更多,因此,您今天做出的任何决定都是可疑的。
与此搭配的另一个很好的原则可能是首先尝试尝试需求中风险最高的部分-这样的想法是,如果您做了简单的部分,然后发现风险高的部分将您朝着不同的方向发展,那么您就没有了重新做容易的部分。这里的冒险意味着您不确定应该如何做。
鉴于这两种情况,并且鉴于我经常尝试从OO角度着手,您可能会首先尝试从应用程序中风险最高的部分的OO模型入手,并实施最少数量的可满足要求的代码有风险的要求。然后,根据需要开始扩展OO模型,以添加所需的功能。一直以来,您可以完全推迟使用SQL或NoSQL还是平面文件或云存储等等的决定……您最终可能会发现根本不需要关系(消除了对ER模型的需求)。
ER模型决定了应用程序的数据将如何持久保存,而OO模型则决定了如何将相同的数据存储在内存中或应用程序运行时。因此,数据库模式设计(ER模型)和类结构设计(OO模型)是相关的设计考虑因素,通常甚至可以同时考虑。实际上,如果您使用的是对象关系映射(ORM)工具,则您的ER模型和OO模型可能是相同的。换句话说,您的类(OO模型)的注释方式可以使它们自己指定ER模型。
但是,在设计之前,请确保您对软件的实际需求,将要使用的软件,将如何使用它以及将由谁使用的软件有很好的了解。许多开发人员在完全理解产品要解决的需求之前就开始考虑设计决策,最终得出的设计不适合应用程序的真正目的。