gpt4 book ai didi

php - 关系数据库中的面向对象结构

转载 作者:IT王子 更新时间:2023-10-29 00:37:50 24 4
gpt4 key购买 nike

各位,

连续第 n 次,我再次遇到同样的老问题。它是关于“我如何以一种轻松的方式将 OOP 结构映射到数据库表。”

这是一个场景:我的系统中有几种类型的“参与者”—— worker 、雇主、联系人。它们具有某些共同的功能;其他作品则大不相同。所有参与者处理的实体是“通信”、“注释”(管理员喜欢在客户身上留下注释)等等。每个 actor 类型处理大量其他实体类型,而其他类型则不处理。

目前,我的数据库架构包括以下表:

Actor :

  • worker
  • 雇主
  • 联系

实体:

  • 沟通
  • 笔记
  • 等等

实体和参与者之间的关联表:

  • worker 通讯协会
  • 雇主沟通协会
  • worker 笔记协会
  • 等等,你得到了训练。

这对我来说就像是一种“代码味道”。每当客户改变他们的角色(即从“联系人”提升为“雇主”)时,需要运行一堆疯狂的脚本。糟糕......另一方面,如果我在一个纯粹的 OOP 驱动的世界中操作,这会容易得多 - 为所有具有共同属性的实体创建一个基类,并完成它......

在数据库世界中,该选项在理论上似乎是可行的,但听起来非常困惑......即如果我没有理解错的话,我就会有一个新的 base_actor 表,并且每个其他 actor 都会有一个 base_actor_id,然后关联将在 base_actor 和实体之间......但是,我该如何进行反向关联查询? IE。 “显示与 worker 类型的转换的所有通信”?

有什么建议吗?关于“将 OOP 结构映射到关系数据库”的主题有什么一般性想法吗?

最佳答案

.. It's about "how do I map OOP structures to database tables in a painless way."

你没有。

面向对象和关系代数是两种根本不同的范式。如果没有主观解释,您就无法在它们之间转换。这称为阻抗失配,并被称为 The Vietnam of Computer Science .

关于php - 关系数据库中的面向对象结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/600684/

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