Zum Inhalt

Projekt & Entity

Diese beiden Objekte beantworten „Was empfangen wir, und für wen?"

Projekt

Ein Projekt ist der Container für einen Intake-Use-Case. Es bündelt alles, was zum Empfang und zur Verarbeitung einer Klasse von Lieferungen nötig ist:

  • die Entities, die die Zielform definieren (per Rolle zugewiesen),
  • die DataContracts, gegen die Lieferanten liefern,
  • Transformer, die Verträge auf Entities abbilden,
  • projektweite Geschäftsregeln und Kataloge,
  • das Ausgabeformat für den Export,
  • die Datenlieferanten mit Zugriff.

Ein Projekt trägt außerdem betriebliche Einstellungen wie den Freigabemodus (auto, einfache oder doppelte Freigabe) und wie Sessions erstellt werden dürfen (durch Ihre Organisation, durch Lieferanten oder beides).

Entity

Eine Entity ist das Zielschema — die Tabelle, in der Ihre normalisierten Daten landen. Sie deklariert Spalten und deren Typen und hält die Validierungsregeln auf Zeilenebene.

Entities sind zweistufig:

  • Organisations-Entities (project_id ist null) sind projektübergreifend wiederverwendbar.
  • Projekt-gebundene Entities leben in einem Projekt. Eine projekt-gebundene Entity überschreibt eine angehängte Organisations-Entity gleichen Namens.

Innerhalb eines Projekts werden Entities über eine Join-Tabelle angehängt, die jeder eine Rolle zuweist (eindeutig pro Projekt), damit ein Transformer und das Exportformat wissen, welche Entity welche ist.

Warum sie getrennt sind

Das Projekt ist die organisierende Einheit; die Entity ist der Datenvertrag für Ihren Output. Die Trennung erlaubt es, dass eine Entity-Definition viele Projekte bedient und ein Projekt mehrere Entities zusammensetzt (für Mehrdatei-Lieferungen, die gegeneinander abgeglichen werden müssen).

Verwandt