At least part of my issue with #605520: undefined variable $colcolname, line 95 of tw.views_default.inc is a fundamental misunderstanding of a feature based on unclear naming. Completely by accident, I happened to stumble across this nice little tidbit on the Project page (emphasis mine):

Version 1.1 is now available. It adds significantly more flexibility in creating relationships - they can be defined as either Automatic (using Views joins) or Manual (using Views relationships)...

There is absolutely nothing in the naming of "Manual" and "Automatic" that even remotely implies some sort of bearing on how these will be represented in Views.

I'll go out on a limb and ask... why not call it "Join" vs. "Relationship?" :)

Comments

mikeryan’s picture

Status: Active » Postponed (maintainer needs more info)

Indeed, I've struggled with the terminology. Elsewhere you say "IMO, we can assume some level of database familiarity with the users of this module", but I've had enough feedback to indicate there is an audience that is not really database literate - people that have a CSV file they want to expose on their Drupal site without learning the terminology of relational databases.

I'm not entirely happy with the Automatic/Manual thing myself, but I need a better alternative that might mean something to DBAs and people trying to upload Excel spreadsheets. Considerations:

  • We need terms to describe "Manual" relationships, "Automatic" relationships, and both combined (called "Relationships" in the current UI).
  • What TW is calling an "Automatic" relationship is transparent to most users of the Views module - they just find that when they add CCK fields to their nodes they're available to views... automatically. The word "join" is only apparent to developers implementing hook_views_data().
  • What TW is calling a "Manual" relationship is exposed to users of Views as a Relationship. If we call this a "Relationship", what do we call the concept that encompasses both this and "automatic" relationships?
  • To a database-literate but not Views-literate user, either kind of relationship is a "join" - the difference is whether the join is present automatically to views based on the left side of the join, or whether it has to be manually added (via what the Views module calls relationships).

In this context, calling the overriding concept Relationships and calling the sub-concepts Manual and Automatic is the best I can think of - I think Automatic and Manual are the best way to convey the idea that the difference is whether the data on the right side of the relationship is automatically included in views of the left side. I'm sure better supporting documentation can be provided for the concepts, but I'm open to better terminology - I'm not convinced Joins/Relationships is it.

Thanks for the feedback - the vocabulary for a module like this, which potentially straddles technical and non-technical users, is challenging.

webchick’s picture

Status: Postponed (maintainer needs more info) » Active

Hm. Good points. And it was a bit silly for me to assume that the people using this will understand db concepts. :)

I guess I was thrown off because you also use terms directly from Views like "base table" which I don't think most people without familiarity with the Views API will understand. So applying this vocabulary consistently would mean also using "Join" and "Relationship" in the names.

Of the options proposed, I definitely think "Relationship" or "Relationship type" as the column header (instead of "Automation") would be a drastic improvement, and would've severely cut down on the time it took for me to figure this out.

mikeryan’s picture

Status: Active » Fixed

Changed column name to "Relationship type".

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.