Die beste Vorgehensweise besteht darin, alle zugehörigen Daten in einer Datenbank zu speichern. Sie können die referenzielle Integrität in Datenbanken nur durch komplexe Methoden wie Trigger erzwingen. Innerhalb einer Datenbank können Sie problemlos Fremdschlüssel verwenden, um die referenzielle Integrität zu erzwingen.
Eine bewährte Methode seit 2005 ist es, auch die Trennung von Benutzern und Schemata zu erzwingen, sodass Sie nicht alles in [dbo] setzen, sondern für jede Gruppe von Objekten ein relevantes Schema haben. Diese Klassifizierung von Objekten macht es realistisch, Tausende von Tabellen oder Prozeduren in einer einzigen Datenbank zu haben.
In einer modernen Datenbank wie SQL 2005 und höher ist es nicht erforderlich, Objekte über Datenbanken hinweg zu trennen. Sie verfügen über Tools wie Dateigruppen, Partitionierung, Benutzer-/Schematrennung usw., mit denen Sie problemlos in einer Datenbank arbeiten und effizienter arbeiten können.
Als ein Beispiel dafür, warum die Verwendung einer einzelnen Datenbank und das Trennen von Objekten nach Schemas ein bevorzugter Ansatz ist, sollten Sie die Portabilität der Anwendung in Betracht ziehen. In dem Fall, in dem Sie Code von Entwicklung zu Test zu qa dann Produktion verschieben möchten oder wenn Sie Code von Client zu Kunde verschieben möchten, wenn Sie Datenbank-Namen in Ihrem Code eingebettet haben, wird das schwierig.
Möglicherweise haben Sie einen monatlichen Umsatzbericht, der von der Buchhaltung verwendet wird, um Aggregate zu erhalten. Wenn es sich in derselben Datenbank befindet, wird der Verkaufsbericht als []. [] Aufgerufen, und Sie können von [_dev] nach [_prod] wechseln und der Anruf ist derselbe. Wenn Sie andere Datenbanken verwenden, lautet der Aufruf des Verkaufsberichts beispielsweise [Verkauf]. [Dbo]. [Get_monthly_report] (z. B.). Um nun zu einem anderen Satz von Datenbanken mit unterschiedlichen Namen zu wechseln, müssen Sie sich auf einer komplett separaten Instanz befinden, wobei die Datenbanken genau gleich aufgebaut sind. In einigen Fällen, z. B. wenn Sie Code auf eine Client-Site verschieben, kann dies sehr schwierig sein.
Wenn Sie den gesamten Code in einer Datenbank haben, können Sie den Datenbanknamen NICHT in Aufrufen von Tabellen, Ansichten, Prozeduren usw. verwenden, und Ihr Code ist viel portabler und flexibler.
Mit einem zentralen Repository für gemeinsame Informationen (aka - eine Datenbank) ist genau das, was Sie tun sollten. Es sei denn, ich verstehe die Frage nicht. – Yuck
Wenn Sie Codebeispiele wünschen, müssen Sie sich auf einen Hersteller beschränken (mysql oder sql-server). Es gibt zu viele Syntaxunterschiede. –