C++/OOP关联模型和数据库

C++/OOP Associations model and database

本文关键字:数据库 模型 关联 OOP C++      更新时间:2023-10-16

编辑:我称之为关联,因为在我的脑海中应该是这样,但似乎我将其实现为一个聚合。。。这也可以讨论

上下文

你在IT中学到的是,当你进行关联时,你应该使用指针。

例如:您有两个对象:Person和Movie。一个人可以拍几部电影,一部电影可以由几个人一起拍。然后你会有:

class Person
{
    public:
        Person::Person();
        int id;
        vector<Movie*> movies;
};
class Movie
{
    public:
        Movie::Movie();
        int id;
};
main()
{
    Person person;
    Movie *movie = new Movie;
    person.movies.push_back(movie); // With a setter it would be better but...
}

或者类似的东西(如果我做错了,请纠正我=D)

问题出现的地方

现在你有很多人和电影,你想把它保存在某个地方:数据库中。

  1. 你得到你的人
  2. 为了构建整个对象,您可以获得与它相关联的所有电影

但是你是怎么得到它们的

  • 您是否为您关联的每个相关人员重建一个新的Movie指针然后,您将失去关联属性,该属性允许对象链接,但可以过自己的生活。

  • 是否将所有数据库加载到RAM中,然后好的,忘记这个

  • 聪明地做这件事的方法是什么?文件给出的正确方式是什么

我对简化/伪代码作为例子感兴趣,论文。。。太多了!

您的问题非常广泛,有很多方法,如何绑定数据库表(并表示它们的外键连接)。

实际上,这不仅仅是如何表示/处理域模型片段,您将在这里的代码示例中介绍这一点。

@Martin Fowler提供了EAA模式目录,您可以进行合理的研究,并将适当的模式应用于您解决的此类object <-> relational mapping问题。