У меня есть статическая таблица entry
, которая используется несколькими базами данных / веб-сайтом. Под статическим я подразумеваю, что данные читаются, но никогда не обновляются веб-сайтами. В настоящее время все веб-сайты обслуживаются с одного сервера, но это может измениться.
Я хочу минимизировать необходимость создания / ведения этой таблицы для каждого из веб-сайтов, поэтому я подумал о том, чтобы превратить ее в переменную, которая хранится в общей библиотеке, к которой имеют доступ все веб-сайты.
Проблема в том, что я использую ORM и использую ограничения внешнего ключа для обеспечения ссылочной целостности идентификаторов, используемых из этой статической таблицы, поэтому, удалив эту таблицу из базы данных MySQL в переменную, как можно Я все еще получаю ссылочную целостность для идентификаторов, на которые ссылаются из этой таблицы? Должен ли я делать это полностью программно или есть хитрость, чтобы все еще обрабатывать данные, как будто они поступают из реальной таблицы БД.
Определение моей базы данных (с использованием Propel) изначально выглядело так: в таблице refer
было поле linkto
, которое ссылалось на id
таблицы entry
. Теперь, когда таблица entry
находится в коде, я больше не могу выполнять трюк с внешним ключом, или я могу каким-то образом получить тот же эффект?
<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>
И, конечно, есть ли другие эффективные способы сделать то же самое? Я просто не хочу повторять эту таблицу для нескольких сайтов.