2010-06-22 44 views
2

我正在创建一个Web应用程序,我只是想知道如何考虑来自MVC背景的Drupal的数据库。 我有表格来表示人们的数据,如SSN,名字,姓氏,邮政编码,地址,语言,位置等。现在在前端,我想创建一个表单来填充一些主题(人物)的这些信息。我有我的数据库正常化,所以邮编有自己的表(与人表的外键链接)。 “人”表具有诸如名字,姓氏,地址等等,而“语言”表将具有不同的语言缩写(再次将外键返回到人表)。移动数据库架构到Drupal

我想知道如何将这样的东西移动到Drupal的模式。我知道我可以创建自己的表并将它们链接回“节点”表,然后我认为构建我的表单以接受用户输入......但这是建议的方式吗?我在看webform,但似乎这应该用于数据库未标准化且所有内容都存储在一个大表中的简单表单。我不确定,但我一定会喜欢听到你们的想法......如果你能指点我一些很棒的资源。

+0

是用户还是客户? – googletorp 2010-06-22 07:07:24

+0

他们是客户 – berto77 2010-07-01 19:48:33

回答

2

这听起来像你只是存储信息和主题(人)不会是Drupal网站的用户。

利用节点和CCK模块实现这一目标将会消除大部分开发工作。例如,您的每个表格(例如,人员,邮政编码,语言)都可以由具有多个字段的内容类型来表示。外键将由节点引用字段表示。所以Person内容类型可能有一个或多个节点引用类型为Language的节点。

migrate module似乎很好用的(至少在10个不同的Drupal网站使用626th most popular of 4000+ modules),但它可能更容易自己动手迁移脚本,但我不熟悉,或者您的情况,与你的熟悉程度Drupal的API或迁移模块。

节点引用字段默认情况下显示为引用节点的链接,但可以以加载和显示引用节点为主题(例如在Person节点中显示语言信息)。有一个方便的screencast,演示了如何使用主题节点引用字段来加载和选择性地显示引用节点的内容。

+0

好吧,所以节点引用基本上是“外键”链接 - 是有道理的..感谢 – berto77 2010-06-22 17:24:20

3

Drupal非常灵活,您可以创建任意表,然后编写代码将它们链接回节点表。然而,这样做意味着你会得到很多代码,这些代码非常特定于你的模式,并且与其他Drupal模块不能很好地互操作。

如果你主要用Drupal的方式做事,你会发现你用Drupal更好。只有在你正在做一些未被标准Drupal模块覆盖的特定解决方案时,你才需要这样做。

例如,您可能会发现profile module只要有关人员的标准信息符合您的需求即可。 location模块(特别是用户位置)将覆盖用户地址。通过使用这些模块,您将来可能会发现其他模块与其一起工作,并且总体而言,您会发现代码编写较少。

您可能会发现有用的一件事是migrate module用于将现有数据存入Drupal。

+0

谢谢Jeremy ......个人资料和位置模块似乎适用于已注册(作为用户访问该网站)的用户。我需要一个表格来捕捉人物(主体)的数据。但感谢评论......它给了我更多的见解。我也可以使用这些模块中的一些表格。 – berto77 2010-06-22 17:20:26

1

从MVC背景来看,您可能不喜欢Drupal如何将数据存储在数据库中。

配置文件模块被提及,但我发现我获得更多的灵活性与内容配置文件和CCK相结合。

我以前从Coldfusion编写过一些迁移脚本到Drupal,并没有太多介入。

+0

我将检查内容配置文件。 – berto77 2010-06-22 17:24:53