gpt4 book ai didi

database - 数据库表和面向对象类之间有关系吗?

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:03 26 4
gpt4 key购买 nike

每次我编程时,我都会认识到类和表之间的这种关系,或者我是在想象它。

您可以为每个数据库表创建一个类或为每个类创建一个表,即:

    tables: customer, products, order.

classes: customer, products, order, may have methods such as addRecord, deleteRecord, updateRecord.

这叫什么?对象关系?我不是 DBA。

最佳答案

这完全取决于您使用的数据库类型。如果您使用的是 object oriented database (OODB),那么就没有关系,因为对象和持久化数据是一回事。例如,如果您有一个 Customer 类,并将其保存在 OODB 中,那么该客户的实例就是存储在数据库。

如果您使用的是 relational database ,然后是类实例,以及它们在数据库中的持久表示,可以是同一件事,但很多时候它们不是。这是因为大多数人使用 normalization以有效的方式(在关系数据库中)表示他们的数据。这意味着,您可以让一个类由多个表表示,而不是每个类都有一张表。在 Customer 示例中,表现在可能是 Customer(包含姓名、出生日期和其他属性)和 Order(包含订单指向另一个表中的产品)。其原因与 cardinality 有关。 ,以及 Customers 拥有多个订单的能力。当您的业务逻辑需要来自数据库的此信息时,数据访问层的工作是将数据(称为 ORM )从数据库映射到您的类中。

如果您使用的是另一种类型的数据库,那么类(域模型)与数据库中持久化的内容之间的关系就会不同。

但是,至于为这种关系命名吗?不,没有名字。

关于database - 数据库表和面向对象类之间有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14910161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com