我正在使用预先存在的数据库并转移到Drupal 7。 遗留数据库模型具有公共列的基础对象表,然后是类型列,指定对象是图像,标本,分类单元等。每个“类型”都有自己独立的列表(图像表,样本表, locality table等),使用外键绑定到基础对象表。
在某些情况下,如图像,有一列引用标本ID。换句话说,几个图像可以属于相同的“samples_id”。此ID是相关样本的基础对象ID。
在迁移到Drupal时,我为基础对象表创建了一个新实体,然后为每个基础对象'type'定义了包。用作每个'type'表的一部分的列,我现在在安装模块期间附加到bundle。我这样做是通过定义一个字段和字段实例数组,然后循环遍历数组并调用field_create_field()
和field_create_instance()
。
这是正确的做法吗?
当我创建一个像samples_id这样的外键字段时,它如何知道这是引用给定样本的基础对象实体ID?
为了建立这些关系,我是否应该使用hook_field_schema()
来定义它们,因为它有外键设置,然后创建字段和字段实例?
当然,这在创建视图和需要提取信息时变得相关。我猜它可以用作捆绑< =>捆绑关系。在CRUD操作期间,我可以在需要时使用ID获得我需要的东西。
感谢任何帮助或见解。