数据库
首页 > 数据库> > php – 使用ORM在不在数据库中的表上的外键

php – 使用ORM在不在数据库中的表上的外键

作者:互联网

我有一个静态表条目,由几个数据库/网站共享.静态,我的意思是数据被读取但从未被网站更新.目前,所有网站都是从同一台服务器提供的,但可能会发生变化.

我想最大限度地减少为每个网站创建/维护此表的需要,因此我考虑将其转换为存储在所有网站都可以访问的共享库中的变量.

问题是我使用ORM并使用外键约束来确保从该静态表中使用的ID的引用完整性,因此通过将该表从MySQL数据库中删除到变量中,我如何仍然获得引用的ID的引用完整性从那张桌子?我是否必须完全以编程方式执行此操作,或者仍然有一个技巧仍然将数据视为来自真正的数据库表.

我的数据库定义(使用Propel)最初看起来像这样,其中引用表有一个字段链接,它引用了条目表的id.现在条目表在代码中,我不能再做外键技巧,或者我可以以某种方式获得相同的效果?

  <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>

当然,还有其他任何有效的方法来做同样的事情吗?我只是不想为几个网站重复那个表.

解决方法:

你可以创建一个约束 – 一个强大的冗长,如果你的id FK被一个链接替换了 – 但是你仍然可以为每个网站维护这个约束.如果您想要其他处理方法的建议,将有助于了解这些表实际跟踪/正在使用的内容.

标签:php,mysql,orm,doctrine,propel
来源: https://codeday.me/bug/20190710/1420992.html