Вопрос

Я понимаю, когда говорю о структурах, очевидно, если вы говорите "Post Hasmany Commonds" Есть много записей о Комментарии относится к каждому почта.

Чего я не понимаю, так это то, в каком контексте используются такие термины. Я думаю, в основном только в DBAL или рассказывании о дизайне. В любом случае, когда одна вещь "имеет много"Другое как и где это появляется?

Это было полезно?

Решение

В любом случае, когда одна вещь Has Many Of Area, как/где он отображается в приложении и логике базы данных?

Единственный способ подумать, чтобы ответить на этот вопрос, - это другой пример Хасмани, который может ответить или не ответить на ваш вопрос.

an example of a hasMany using posts and comments

Эээ, за исключением того, что я должен был назвать таблицу «комментарий», но я думаю, что смысл стоит.

Я не знаю, что это В самом деле Помогает вам понять больше, чем то, что у вас уже было.

Так что я также поделюсь запросом, который может продемонстрировать, как это работает:

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

Как вы видите, они могут стать довольно сложными. Это ... еще раз! ... Укажите необходимость рефакторировать вашу бизнес -логику в более простые и меньшие куски.

Они также могут быть названы «типами ассоциаций» и могут быть обозначены Vergure, как «написано» (от многих к одному) или «Isownedby» (один к одному? - контекст - это ключ)

Прежде чем я ухожу от концепции «Хасмани» в последний раз (ну, это является Обновление, вероятно, будет написано больше), я хочу упомянуть, что, хотя оно полезно для «простых английских описаний», оно также используется в установках Activerecord Styleded. Взять, к примеру, Руби. 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 создавать модель данных и поддерживать отношения, указанные в бизнес -логике в рамках программы. Но я не пишу Ruby или Rails, так что, насколько я могу вам сказать, я просто знаю, что он существует там.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top