我正在创建一个Web应用程序,我只是想知道如何考虑来自MVC背景的Drupal的数据库。 我有表格来表示人们的数据,如SSN,名字,姓氏,邮政编码,地址,语言,位置。现在在前端我想创建一个表单来为一堆主题(人)填充这些信息。我对我的数据库进行了规范化,因此Zip Code有自己的表(带有指向person表的外键链接)。 “person”表中包含诸如名字,姓氏,地址等内容......“语言”表将具有不同的语言缩写(再次使用外键返回到人员表)。
我想知道如何将这样的东西移到drupal的架构中。我知道我可以创建自己的表并将它们链接回“节点”表,然后我想构建我的表单来接受用户输入......但这是建议的方法吗?我正在看webform,但似乎这应该用于更简单的表单,其中数据库没有规范化,一切都只存储在一个大表中。我不确定,但我一定很想听听你们的想法......如果你能指出一些很棒的资源。
答案 0 :(得分:3)
Drupal非常灵活,您可以创建所需的任何表,然后编写代码将它们链接回节点表。但是,这样做意味着您最终会得到许多非常特定于您的架构的代码,并且与其他Drupal模块不能很好地互操作。
如果您主要以Drupal方式做事,您会发现Drupal会更好。并且只需要一个非常定制的解决方案,你正在做一些标准Drupal模块未涵盖的事情。
例如,您可能会发现profile module符合您的需求,就人们的标准信息而言。 location模块(特别是用户位置)将覆盖用户地址。通过使用这些模块,您将来更有可能找到与其一起使用的其他模块,总体而言,您会发现编写的代码较少。
您可能觉得有用的一件事是将migrate module用于将现有数据导入Drupal。
答案 1 :(得分:2)
听起来你只是存储信息而且主题(人)不会成为Drupal网站的用户。
利用节点和CCK模块实现这一目标将消除大部分开发工作。例如,您的每个表(例如,人员,邮政编码,语言)都可以由具有多个字段的内容类型表示。外键将由节点引用字段表示。因此Person内容类型可能有一个或多个节点引用类型为Language的节点。
migrate module似乎使用得很好(626th most popular of 4000+ modules在至少10个不同的Drupal网站中使用),但可能更容易制作自己的迁移脚本,但我您不熟悉您的情况,熟悉Drupal的API或迁移模块。
节点引用字段默认显示为引用节点的链接,但可以主题加载并显示引用的节点(例如,在Person节点中显示语言信息)。有一个方便的screencast说明了如何使用节点引用字段来加载和选择性地显示引用节点的内容。
答案 2 :(得分:1)
来自MVC背景,您可能不喜欢Drupal如何在数据库中存储数据。
提到了个人资料模块,但我发现内容配置文件和CCK的组合更加灵活。
我之前已经写过一些从Coldfusion到Drupal的迁移脚本,但它并没有太多参与。