I have been researching this notion of building a marketing/profiling solution for a while now. The overview is leveraging CCK to collect data from users but not restricting the use of the fields to a specific content type.
** First my disclaimer **
I've read in several blog posts, conversations with like minded people at Drupal events, and verified the issues on client projects that sharing fields between multiple content types can cause major performance issues on high-volume, high performance Drupal installations. And yes if not "band-aided" by providing server caching strategies sharing fields can cause problems.
That being said, here is my question/idea.
Over the course of several years I've had clients ask for the ability to collect a consolidated profile of a user. Get contact, geographic, demographic, and marketing oriented data. The problem is leveraging the Drupal modules available either a) required a lot of custom modules b) using webforms submitting to custom databases or SASS services.
What if in addition to sharing sets of fields and field sets per content type, what if you could define sets of fields per an individual node? By having a UI management tool to define "field Sets" that you could add to a) existing forms, b) nodes, c) paths within the site. The display of the fields/form would either be explicitly assigning the field set or triggering the display via Rules (leveraging the rules module). One could conditionally display fields to users and gather per-field data about the user over time. The "marketing" fields could slowly collect information about a user and populate the data correlated to a user's profile (maybe exposing the default set of fields for a profile using content profile module) and any other values for the fields could be reviewed as reports or exported by business users who could run SQL (maybe leveraing the data module) or view reports (in combination with views and Bulk view operations).
Yes you could use the webform module to allow users to submit information. But each webform's fields and submitted data is isolated and you couldn't easily share the data between user sessions for webforms (at least I couldn't find an elegant way to do it).
In Drupal 6 it looks like I'd have to write a lot of custom "bridge" modules to allow this functionality. Does anyone thing in Drupal 7 the effort would be easier considering the Entity API?
Thoughts? (other than, you Soo crazy!)