Frage

Mir ist klar, wenn man über Strukturen spricht, natürlich, wenn Sie sagen „Beitrag hat viele Kommentare“ Es gibt viele Aufzeichnungen darüber Kommentare sich auf jeden beziehen Post.

Was ich nicht verstehe, ist, in welchem ​​Kontext diese Art von Begriffen verwendet werden.Ich denke hauptsächlich nur an DBAL oder spreche über Design.Auf jeden Fall, wenn eine Sache“hat viele" von einem anderen wie und wo wird es angezeigt?

War es hilfreich?

Lösung

Wie/wo erscheint es in der Anwendungs- und Datenbanklogik, wenn eine Sache viele andere hat?

Ich kann mir nur vorstellen, diese Frage mit einem anderen Beispiel von hasMany zu beantworten, das Ihre Frage möglicherweise beantwortet oder auch nicht.

an example of a hasMany using posts and comments

äh, außer ich hätte die Tabelle „Kommentar“ nennen sollen, aber ich denke, der Punkt steht.

Das weiß ich nicht Wirklich hilft Ihnen, mehr zu verstehen als das, was Sie bereits hatten.

Deshalb werde ich auch eine Abfrage teilen, die zeigen könnte, wie das funktioniert:

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

Wir gehen davon aus, dass viele Zeilen zurückgegeben werden, da ein Beitrag im Allgemeinen viele Kommentare enthält (theoretisch werden natürlich nicht alle Beiträge Kommentare enthalten).


Aktualisieren:

Hier ist also die Sache mit Beziehungen:Sie lassen sich EINFACH per Diagramm modellieren (siehe das allererste Tool, das ich zur Beantwortung dieser Frage herausgezogen habe), aber per Text sind sie SCHWER grafisch darzustellen.Anstatt also zu definieren, ob wir 1:M oder 0:N meinen, schreiben wir es einfach in „nahezu Englisch“ und sagen, was wir beabsichtigen.Hier sind einige Alternativen:

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

Wie Sie sehen, können sie ziemlich kompliziert werden.Das würde ...Noch einmal!...weisen auf die Notwendigkeit hin, Ihre Geschäftslogik in einfachere und kleinere Teile umzugestalten.

Diese können auch als „Assoziationstypen“ bezeichnet werden und durch Ausdrücke wie „WrittenBy“ (viele zu eins) oder „IsOwnedBy“ (eins zu eins) angegeben werden.- Kontext ist der Schlüssel)

Bevor ich mich ein letztes Mal vom „hasMany“-Konzept verabschiede (naja, das hier Ist ein Update, es wird wahrscheinlich mehr geschrieben) Ich möchte erwähnen, dass es zwar für „einfache englische Beschreibungen“ nützlich ist, aber auch in Installationen im ActiveRecord-Stil verwendet wird.Nehmen wir zum Beispiel Ruby. http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html Der Rest dieses Beitrags stammt (bisher) von dieser Seite:

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

Dies ermöglicht es dem ActiveRecord ORM, das Datenmodell zu erstellen und die Beziehungen gemäß der Geschäftslogik innerhalb des Programms aufrechtzuerhalten.Aber ich schreibe weder Ruby noch Rails. Soweit ich das beurteilen kann, weiß ich nur, dass es dort existiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top