Ich habe eine statische Tabelle entry
die von mehreren Datenbanken/Webseiten gemeinsam genutzt wird. Mit statisch meine ich, dass die Daten gelesen, aber nie von den Websites aktualisiert werden. Derzeit werden alle Websites vom selben Server bedient, aber das kann sich ändern.
Ich möchte den Bedarf an der Erstellung/Pflege dieser Tabelle für jede der Websites minimieren, also dachte ich daran, sie in eine Variable umzuwandeln, die in einer gemeinsamen Bibliothek gespeichert wird, auf die alle Websites Zugriff haben.
Das Problem ist, dass ich ein ORM verwende und Fremdschlüsselbeschränkungen verwende, um die referentielle Integrität der aus dieser statischen Tabelle verwendeten IDs zu gewährleisten, Wenn ich also diese Tabelle aus der MySQL-Datenbank in eine Variable entferne, wie kann ich dann noch die referentielle Integrität für die IDs erhalten, auf die in dieser Tabelle verwiesen wird? Muss ich das komplett programmatisch machen oder gibt es einen Trick, um die Daten trotzdem so zu behandeln, als kämen sie aus einer echten DB-Tabelle.
Meine Datenbankdefinition (mit Propel) sah ursprünglich wie folgt aus, wobei die refer
Tabelle hatte ein Feld linkto
die sich auf die id
der entry
Tisch. Nun, da die entry
Tabelle im Code ist, kann ich den Fremdschlüsseltrick nicht mehr anwenden, oder kann ich irgendwie denselben Effekt erzielen?
<table name="entry">
<column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" />
<column name="title" type="VARCHAR" size="500" required="true" />
</table>
<table name="refer">
<column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" />
<column name="linkto" type="INTEGER"/>
<foreign-key foreignTable="entry">
<reference local="linkto" foreign="id" />
</foreign-key>
</table>
Und gibt es noch andere effiziente Methoden, um das Gleiche zu tun? Ich möchte nur nicht diese Tabelle für mehrere Websites wiederholen müssen.