Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Extending views with relationships

From: Drupal 6: Online Presentation of Data

Video: Extending views with relationships

Now we come to one of the hardest concepts in all of Drupaldom, Relationships. As with Arguments, I'll only be able to give you a peek into the vast world of possibilities made available by employing Relationships. Our first task is to understand what relationships are and at base, what they give you. Let's get a little conceptual background first by returning to some slides we saw back in the video, Planning Your Data Structure. You might remember that we decided to make multiple tables so that instead of storing all personal information in one place, since we have three people in the same household, it made more sense to store that household information only once in a separate table which labels it as such and then make a relationship between the two.

Extending views with relationships

Now we come to one of the hardest concepts in all of Drupaldom, Relationships. As with Arguments, I'll only be able to give you a peek into the vast world of possibilities made available by employing Relationships. Our first task is to understand what relationships are and at base, what they give you. Let's get a little conceptual background first by returning to some slides we saw back in the video, Planning Your Data Structure. You might remember that we decided to make multiple tables so that instead of storing all personal information in one place, since we have three people in the same household, it made more sense to store that household information only once in a separate table which labels it as such and then make a relationship between the two.

In our example, we have Mimi de Nada living in Household 0001, then we have a separate Household table that shows exactly where that household is. One table relates to another. This is the essence of a relational database such as that which Drupal is built on. So what does that mean in Drupal? Quite a lot actually. We'll understand a bit by looking at a Node in Drupal, and then looking at how that node is constructed actually behind the scenes in the database. We'll go to this Dani de Nada Node by clicking on her picture and then we click on Edit.

As you scroll down, you see that there is a headshot associated with this node. Actually nodes can only hold textual data in the their database. Remember the database that's running this doesn't hold graphics. Those are stored as separate files in your Drupal installation. So how exactly is that managed? Let's go to the database and take a look. First, I go up to the URL to see that this is actually node 15. I switch over to my database and go down to the node table. Now I'm about to start discussing the various tables that run in Drupal. Don't worry if you don't know where to find the information. I'm just going to quickly run through to make a point.

We clicked on this little Browse icon to take a look at what's in that node table and scroll down until we find node 15 and there in fact is Dani de Nada's node. If we look through all of the things that are stored in that node table though, there is actually no reference at all to any kind of graphic. We are scrolling up to the top so we can see exactly what these ids are. There is a reference to the node itself obviously. That's what called the primary key. It's what identifies the node in this table. The Version id, which says what the latest version is since we haven't don't any versioning. It's the same as the node id. Also the User id. It says who exactly created that node.

So once again, where is that graphic? As it happens, it's in a completely different table called content_type_ person. We click on that and scroll down a bit and here we see all the fields. Go to that fields headshot and actually even there, we don't see a graphic. We only see a reference to another table. That one in fact is stored in the files table and there is the file path to our actual file. If we scroll down to the correct file id, we could find it in here. You'd have to do all of this manually and in fact, your computer has to put all of that together manually.

It does it very quickly because it's the sort of information a computer manages well. However, it does take some processing power. Drupal protects you from most of this complexity, but then Views exposes some of it to you again. That's most obvious when you create a CCK field that's either a node reference or a user reference. You might remember that we did that in our Person View in the Married to column. That node reference field actually only pulls over one piece of information, the node id, which is a numerical value that Drupal uses to display the Node's title.

It does that in part because it wants to avoid all of that extra processing complexity that it would have to do to bring over all of the pieces of information. Drupal assumes that all that you need is that title since you are making a simple reference, then you could click through to get more information. We can see that by going back to Drupal, going back to our homepage and clicking through. We know that Dani de Nada is married to Eli de Nada. We click through and then we can start working with Eli's record. But what if you want to get more information/ If for example you wanted to connect the two birthdays or something like that? You have to explicitly tell Drupal that that's what you want. We do that by setting up a Relationship.

Let's return to that view that we setup to show that front-page that lists all of the People. I'll go down to the View, up to the little ghost menu and click on Edit. Because I clicked on Edit from the page, it takes me to the Page display. I want to change the Defaults, so I click on the Defaults display above. In order to set up that relationship and show the spouse's date of birth, we have to create a relationship here. You click on Add next to Relationships and scroll down. The relationship will be between one person and the person that they are married to, so the relationship at base is between the married couple, this Content: Married to field. Click on Add and I'll leave that Label. This Label only appears to the Administrator. It doesn't appear anywhere that the user sees, so it's good to keep something that is verbose. It won't get in your way in the site itself. And we'll click on Update.

Now that didn't change our View at all, but it gives us additional capabilities. We are going to add a field. We see not only Name, Headshot, Date of birth and Married to, but after Married to will be spouse's date of birth. We go up here to Fields and add a field, scroll down to Date of birth, scroll down a little further so that we can see our buttons and add it. I'll leave all of these alone with one exception. We now have this pop-up relationship, which lists all of the relationships that we created. This is the one we just created, so we select it and click Update.

Now we have that new column. I'm going to change it just a little bit more and change the title to Spouse's date of birth and move it to be next to the person that they are married to. I do that by going up to the Field and clicking on it, scrolling down so I can see what I'm doing, change the Label to be Custom and it becomes Spouse's date of birth and click on Update. That looks better and finally, I'll move it by going up to Rearrange and drag it where to I want it. Update and Save.

Let's go back to the View one more time just to take a quick look at something. You will notice in this list of fields, these all simply list the kind of field that's showing and then next to the one we created a relationship to, it has this parenthesis next to it. That's a way that you can tell which fields are using a Relationship and which ones are direct to the node that's actually being used. Again, scrolling down to the View and taking a preview, this Dani de Nada, the Headshot, the Date of birth, all of these other fields are primary to that node. The one that's coming in from an outside table, an outside data source, is this Spouse's date of birth.

There is your introduction to Relationships. As I said, it's a big subject and Drupal administrators have done some absolutely fascinating things with them and we are not going to leave it there. In the video Going Further with Relationships, you will learn how to put Relationships to a greater use than you've seen here. We are going to setup some family events for our fictional de Nada family and use Relationships to show who is planning to attend each of those events.

Show transcript

This video is part of

Image for Drupal 6: Online Presentation of Data
Drupal 6: Online Presentation of Data

50 video lessons · 11272 viewers

Tom Geller
Author

 
Expand all | Collapse all
  1. 12m 56s
    1. Welcome
      1m 12s
    2. Reviewing requirements
      3m 35s
    3. Using the exercise files
      3m 11s
    4. Touring examples of data visualization
      4m 58s
  2. 27m 56s
    1. Planning data structure
      8m 26s
    2. Importing and manipulating data
      6m 40s
    3. Looking at Drupal's database
      6m 13s
    4. Deciding whether to store personal data as nodes or users
      6m 37s
  3. 1h 13m
    1. Understanding the Content Construction Kit (CCK)
      4m 57s
    2. Creating new content types with CCK
      7m 26s
    3. Hiding the Body field
      2m 46s
    4. Reflecting CCK field data in the Title field
      7m 28s
    5. Managing CCK field placement
      7m 34s
    6. Exploring CCK's other features
      8m 22s
    7. Using other CCK field types
      3m 25s
    8. Adding date information as a CCK field
      8m 43s
    9. Including images as CCK fields
      10m 23s
    10. Connecting content to existing nodes
      5m 58s
    11. Using taxonomies to categorize and group data
      5m 59s
  4. 53m 54s
    1. Understanding why views are useful
      6m 12s
    2. Using SimpleViews to create basic content views
      5m 49s
    3. Diving into the Views interface
      11m 16s
    4. Adding fields to a view
      7m 12s
    5. Understanding iconic controls in the Views interface
      7m 15s
    6. Surveying the Sort, Filter, and Field options in Views
      5m 40s
    7. Adding view displays as pages, blocks, and RSS feeds
      10m 30s
  5. 43m 34s
    1. Overriding default settings on view displays
      8m 56s
    2. Attaching more information to views
      10m 57s
    3. Improving view appearances with grid, list, and table formatting
      9m 20s
    4. Surveying other basic display settings in Views
      11m 3s
    5. Altering a view's appearance through CSS
      3m 18s
  6. 55m 8s
    1. Importing, exporting, and cloning views
      6m 9s
    2. Controlling access to views
      7m 19s
    3. Learning from built-in views
      5m 52s
    4. Creating views that aren't based on nodes
      10m 6s
    5. Extending views with arguments
      10m 17s
    6. Extending views with relationships
      7m 2s
    7. Going further with relationships
      8m 23s
  7. 46m 40s
    1. Understanding geographic data
      4m 26s
    2. Setting up the Location module
      16m 20s
    3. Entering geographic data with the Location module
      10m 10s
    4. Displaying basic maps with the GMap module
      6m 43s
    5. Integrating the GMap module with Views
      9m 1s
  8. 54m 21s
    1. Exporting data in tabular form
      11m 25s
    2. Planning with the calendar modules
      11m 31s
    3. Using the Charts module and Google Charts
      7m 11s
    4. Graphing data with Open Flash Chart
      4m 50s
    5. Making important data pop out with tag clouds
      7m 46s
    6. Putting it all together in an attractive package
      11m 38s
  9. 36s
    1. Conclusion
      36s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now "Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Drupal 6: Online Presentation of Data.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.