如果我有一个有苹果的树,我应该如何模拟苹果树所拥有的这个事实.考虑将有3个数据库表:tree,apple,tree_apples.
在我看来,会有一个AppleDecorator类,以便Tree可以拥有多个AppleDecorator,并为每个将这个关联写入tree_apples的函数调用 - > save().Apple不知道它归Tree所有.
除了获取所有树的ID之外,从Tree类引用tree_apples表似乎是错误的,因为Tree类为它拥有的每种类型的对象引用一个表(并且需要存储它有一个的事实) ).即使获得ID也可以卸载到Iterator之类的东西.
应用程序需要存储一个对象拥有N个其他对象的事实应该如何?(在这种情况下,我的类需要存储5种其他类型对象的关联).
tree_apples仅在苹果可以属于多个树时才有效.(m:n关系)
这可能只是一个糟糕的比喻,但如果我们坚持1树有很多苹果,在关系数据库中通常苹果存储对它来自的树的引用.
Tree
TreeId
TreeName
Apple
AppleId
IsRotten
TreeId (foreign key)
Run Code Online (Sandbox Code Playgroud)
对于数据的内存模型(即面向对象),您可能有也可能没有从Apple到Tree的后向指针.即你通常有tree.Apples苹果是某种Apple对象的集合,但你不经常有apple.Tree.