我意识到,在谈论结构时,显然如果您说 “邮政评论” 有很多关于 注释 与每个有关 邮政.

我不明白的是使用这些术语的上下文。我主要仅在DBAL或谈论设计中思考。无论如何,一件事有很多“另一个如何以及在哪里出现?

有帮助吗?

解决方案

无论如何,当另一件事是另一件事时,它在应用程序和数据库逻辑中如何/在哪里显示?

我想回答这个问题的唯一方法是Hasmany的另一个示例可能会或可能不会回答您的问题。

an example of a hasMany using posts and comments

err,除了我应该称表为“评论”,但我认为重点是。

我不知道这个 真的 可以帮助您了解比已经拥有的东西。

因此,我还将分享一个可能证明其工作原理的查询:

declare @var char(5)
set @var = 'query'

select
   c.id
  ,c.text
  ,c.author
from comment c
inner join post p
   on p.id = c.parentid

我们希望这会返回许多行,因为一个帖子通常有很多评论(从理论上讲,当然并非所有帖子都会有评论)


更新:

因此,这是关于关系的事情:它们很容易通过图表建模(请参阅我拉出的第一个工具来回答这个问题),但是它们很难通过文本绘制。因此,我们没有尝试定义我们的意思是1:m还是0:n,而只是用“近英语”写并说出我们打算的内容。这是一些选择:

one to one           hasOne               post hasOne author (not true for CW ;])
one to many          hasMany              The one in question
many to one          belongsTo            parent child, comments belongTo post
many to many         hasAndBelongsToMany  This describes a complex relationship
many to many to many hasManyAndBelongsToMany

如您所见,它们会变得非常复杂。这会...再次! ...表明需要将您的业务逻辑重构为简单,较小的块。

这些也可以称为“关联类型”,可以用“书面”(一对一)或“一对一”(一对一? - 上下文是键)等动词来指示。

在我最后一次离开“ Hasmany”概念之前 更新,可能会写更多)我想提一下,尽管它对“普通英语描述”很有用,但它也用于ActivereCord样式安装中。以红宝石为例。 http://api.rubyonrails.org/classes/activerecord/associations/classmethods.html 该帖子的其余部分(到目前为止)是从该页面中获取的:

class Project < ActiveRecord::Base
  belongs_to              :portfolio
  has_one                 :project_manager
  has_many                :milestones
  has_and_belongs_to_many :categories
end

这允许ActivereCord Orm创建数据模型并维护程序中业务逻辑指定的关系。但是我不写红宝石或铁轨,所以据我所知,我只知道它存在于那里。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top