Comparison of Data module and Table Wizard
giorgio79 asked on the Data issue queue about the difference between Data module and Table Wizard.
I'm reposting my reply here:
There is overlap between table wizard and data, but there are also differences. These differences stem largely from the environments in which TW and Data are maturing: while TW roots are in migration, Data's are in dynamically allocating storage space + providing CRUD on table data.
When starting on the predecessor of Data (Flatstore, there have been 2 versions of it). I had a very close look at table wizard (I was after the dynamic views integration :) - but it became very quickly clear that I was more after a simple dynamic table based data API rather than a table analyzer and integrator.
Here is a breakdown of the most important commonalities and differences that I am aware of (I invite everybody to add or correct).
- Table allocation API: Data has an API to create, update and delete tables, TW doesn't.
- Adding existing tables: TW can manage existing tables, create Schema API information and generate views integration for it. Data can do this only with its own tables. However, Data uses very similar approaches to generate schema API information and views integration for its tables. Adding existing tables would be a rather small change. Both modules rely heavily on schema module for some of this functionality.
- Relate tables: Both modules have an API for relating tables (Data has also a UI for it, don't know about TW).
- Data API: Data has an API for creating, updating and deleting records in data tables. I am looking into strengthening this API. TW does not have such an API and I'm not sure whether it should/is planning to do so.
- Import: TW has import data functionality, Data itself does not have any. Data relies on FeedAPI for importing data (see FeedAPI Data module).
- Data can export table definitions CTools-style, I'm working on a install() update() infrastructure ATM so that we can use Data better as API for other contrib modules.
- Data allows additional meta data per fields (e. g. for defining human readable labels).
- TW analyzes table content, Data doesn't at all.
- There are some other features that I don't see in TW: Configure which views handlers to pick for which fields, search integration, relating data records to nodes (working on that one), manage differences between schema info and table. Some of these features may fit into TW's concept, others may not. I don't know.
To summarize: yes, there is a lot of similarity/overlap, but I feel these two modules aim to address very different use cases. I also use data very decidedly to explore new ways of managing content in Drupal and to that end it is a lot easier to have full independence from similar modules with a different focus. That said, I am very interested to explore ways on how to merge efforts or learn from each other.

