【问题标题】:Use OOPS to design database tables schema?使用 OOPS 设计数据库表架构?
【发布时间】:2015-05-23 12:09:38
【问题描述】:

通常,我们首先检查项目需求并建立表格,然后进行 1/2/3-NF 归一化。

我不喜欢这种方式,因为它不是面向对象的方式。所以任何人都可以分享我们如何使用 OOP 来设计复杂的表模式/关系的经验?

欢迎提供链接/书籍 ISBN。这对我来说非常重要。

谢谢

【问题讨论】:

    标签: database oop database-design architecture


    【解决方案1】:

    关系数据库不能是面向对象的。多年来,试图将它们强制转换为面向对象的模型一直是许多糟糕设计的原因。

    面向对象编程的核心是将代码和数据放在同一个“对象”中。将代码放入关系数据库是一个糟糕的设计。使您的关系数据库擅长存储规范化数据(您谈到的 1/2/3-NF)。

    您可以先进行应用程序设计(请这样做),这将影响创建的表以及规范化它们的程度,但数据库设计本身不应该是面向对象的。

    【讨论】:

    • OOP 有 2 个基本思想:代码和数据结合在一个对象中;并且对象可以从其他对象继承。你不能用关系数据库做这些事情。我想您可以将 sprocs 视为“数据库中的代码”,但它们与对象无关。触发器可以说是附加到对象的代码,但它们是一种非常特殊的情况。这就像问如何让你的电视炸鸡一样。这不是电视的用途。大概有人可以创建一个数据库产品,每个表都附加了代码,但是这样做有什么好处呢?
    • 不要先进行应用程序设计(一些可怕的数据库来自于此。)首先确定您将如何使用数据库中的数据。查看首先使用数据的报告、数据提取和流程。查看满足用户可能不需要查看的需求所需的法律要求和审计要求以及数据。永远不要使用面向对象的原则进行设计,因为这违背了使用关系数据库的目的。设计第一是数据完整性,第二是性能,第三是数据安全。
    猜你喜欢
    • 2020-09-20
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 2012-03-08
    • 2019-02-07
    • 2017-01-18
    • 2015-08-29
    相关资源
    最近更新 更多