gpt4 book ai didi

drupal - 在 Drupal 6 中为用户保存额外数据的最佳方法

转载 作者:行者123 更新时间:2023-12-01 23:39:41 26 4
gpt4 key购买 nike

我正在开发一个网站,该网站在登录时保存不可见的用户数据(例如另一个网站上的外部 ID)。创建帐户后,我们将立即创建/保存此数据。

我可以看到我们使用保存数据

  1. 内容配置文件模块(我们这边已在使用)
  2. 配置文件模块
  3. 用户表中的数据列
  4. 创建我们自己的表

我觉得#1可能是最合乎逻辑的地方,但是在模块中创建节点似乎并不是一件小事。

#3 感觉像是解决此问题的典型方法,但只是在一个包罗万象的字段中包含一堆序列化数据感觉并不是最好的设计。

有什么建议吗?

最佳答案

IMO,每个选项都有其优点和缺点,你应该是做出最后决定的人,因为你是唯一一个知道你的项目是什么、项目的关键点是什么、什么是项目的人。是预期的典型用户模式,可用的资源是什么,等等...

如果我完全可以自由选择,我个人最喜欢的是选项 #4、#1 和 #5(等等!#5?是的:见下文!)。我做出选择的指导原则是:

  • 保持清洁
  • 保持简单
  • 使其可扩展

#1 - 内容配置文件模块

这将是一个干净的解决方案,因为您可以让开发人员更轻松地维护您的代码,因为对用户的所有更改都将通过同一 channel 传递,并且更容易追踪问题或添加新功能。

我认为它并不特别简单,因为它要求您与该模块的自定义 API 进行交互。

至于可扩展性,这取决于内容配置文件模块 API 的设计程度。诱惑可能是简单地使用所述模块完成的表来达到您的目的,绕过 API,但这使您面临这样的可能性:有一天,您匆忙进行关键安全更新时,整个系统将崩溃,因为架构已更改...

#4 - 创建您自己的表格

这将是一个干净的解决方案,因为您可以设计您的表(以及您的模块来完全执行您需要的操作),并且您可以创建自己的 API 来被其他模块使用。另一方面,您将引入另一段代码来改变注册过程,这可能会使开发人员更难以跟踪问题并以一致的方式扩展系统。

这将非常简单以代码方式实现。不过,数据库设计也会受益:另一件事要考虑的是,表将非常容易检查和查询。在大多数情况下,为 View 创建新的处理程序非常容易:五分之四的情况下,您只需使用 View 附带的原型(prototype)对象之一。

当然,这非常容易扩展。一旦为一个字段创建了模块,您就可以通过将一个字段的代码复制/粘贴到另一个字段(或者如果您采用 OOP,则从同一祖先继承)来管理任意多个字段。

我知道您已经了解了 drupal,但是如果您需要如何操作的指导,我在 this other answer 中给出了一些指导。 。

#5 - 创建您自己的表并将现有字段移植到其中

这本质上是 #4 减去将功能分散到各个模块之间的缺点...当然,如果您已经以其他方式管理 200 个字段,这不是一个可行的选择,但如果您很早就开始设计,您可以考虑这个。

根据我的经验,几乎每个需要系统集成(意思是:在多个系统中同步同一用户的数据)的项目都有用户注册的自定义需求,我发现这个解决方案最适合我的需求,原因有两个:

  1. 我发现我在项目之间重复使用了很多我编写的自定义代码。
  2. 这是与其他系统集成数据的最灵活的方式(在某些情况下,我什至将用户的数据拆分到由同一模块管理的两个自定义表中:一种包含仅由 drupal 使用的自定义字段,另一种包含“不可见字段”(如您所说)。我发现这在很多情况下都非常方便,因为它使得检查和操作这两个字段的数据变得非常容易系统分开。

呵呵!

关于drupal - 在 Drupal 6 中为用户保存额外数据的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1892255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com