我正在评估Drupal,看看我们是否可以用它来取代我们的框架。我的问题是我有这些遗留表,我想尝试在Drupal中反映出来。它涉及一个连接表。在我们现有的网络应用程序中有很多这种关系,所以我正在寻找可能的解决方法。
感谢您的见解!
答案 0 :(得分:5)
有几种方法可以做到这一点,很难知道哪种方法最好,没有关于你实际使用数据的内容的上下文,但这里有一些选项:
执行此操作的一种方法是使用由类型特定的节点引用字段表示的外键来表示每个表(使用CCK)的内容类型。作为节点执行所有操作会为您提供围绕节点的一系列预构建功能,但您可能需要避免一些开销。
另一种选择是让你的数据库就像现在一样。 Drupal可以直接进行数据库查询,也可以使用Data将表公开给Views。
另一个选项,如果那些引用的表实际上只有1个非ID字段,则将project_companies_assignments作为节点执行,并将其他3作为分类。但如果这些实际上是更复杂的实体,那么这将不起作用,如果它们变得更加复杂,它将不会非常灵活。
答案 1 :(得分:1)
使用hook_views_api并在hook_views_data中公开旧表怎么样?我自己尝试过这样的事情 - 不确定这是不是你想要的......
尝试让我知道这是否适合你。
http://drupalwalla.blogspot.com/2011/09/how-do-you-expose-your-legacy-database.html
答案 2 :(得分:0)
使用视图和CCK,可选地使用附加数据模块有一个巨大的缺点:它带有复杂性。
我的首选方法是编写自己的模块。 Drupal对数据库抽象提供的帮助很少,它没有适当的ORM等。但是对于数据库中的数据有一些简单的CRUD函数,前面有一些简单的表单,而且有一些页面用于显示数据的菜单回调,你可以经常使用 - 让你的数据模型运行得快得多过于复杂,通常记录不完的CCK和视图模块。吻。