相关疑难解决方法(0)

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

伙计们,

连续第n次,我再次遇到同样的老问题.它是关于"如何以无痛的方式将OOP结构映射到数据库表".

这是一个场景:我的系统中有几种类型的"演员" - 工人,雇主,联系人.它们具有某些共同的功能; 其他作品则截然不同.所有参与者处理的实体都是"通信","笔记"(管理员喜欢给客户留言)等等.每种演员类型处理的其他实体有很多类型,而其他实体则没有.

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

演员:

  • 工人
  • 雇主
  • 联系

实体:

  • 通讯
  • 笔记
  • 等等

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

  • 工人通信ASSN
  • 雇主通信ASSN
  • 工人笔记,ASSN
  • 等等,你得到了演练.

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

在DB世界中,这个选项似乎在理论上是可行的,但听起来非常混乱......即如果我理解这一点,我会有一个新的base_actor表,而其他每个actor都会有一个base_actor_id,然后关联将介于两者之间base_actor和实体......但是,我如何进行反向关联查询?即"向我展示与工人类型的演员的所有沟通"?

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

php mysql database oop

9
推荐指数
3
解决办法
4788
查看次数

标签 统计

database ×1

mysql ×1

oop ×1

php ×1