New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

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

Looking at Drupal's database

From: Drupal 6: Online Presentation of Data

Video: Looking at Drupal's database

Now we are ready to talk about Drupal itself. Keep in mind that Drupal essentially is just an attractive and flexible interface to a back end database. So it's worthwhile to take a look at that database to understand what exactly happens when you create, modify, and delete content in Drupal. This understanding will make Drupal administration a lot clearer overall and it opens up a world of possibilities if you are an advanced programmer or a database administrator. We are working with a pretty clean installation of Drupal here. We are going to mess it up a little, so we'll be ready to roll it back to its previous state we are done. The Using the Exercise Files chapter of this course shows you how to save and restore a database, so be sure to watch that video if you decide to follow along and you end up making changes that you decide not to keep later.

Looking at Drupal's database

Now we are ready to talk about Drupal itself. Keep in mind that Drupal essentially is just an attractive and flexible interface to a back end database. So it's worthwhile to take a look at that database to understand what exactly happens when you create, modify, and delete content in Drupal. This understanding will make Drupal administration a lot clearer overall and it opens up a world of possibilities if you are an advanced programmer or a database administrator. We are working with a pretty clean installation of Drupal here. We are going to mess it up a little, so we'll be ready to roll it back to its previous state we are done. The Using the Exercise Files chapter of this course shows you how to save and restore a database, so be sure to watch that video if you decide to follow along and you end up making changes that you decide not to keep later.

First, we have our site right here. Let's go and take a look at the database that's sitting behind it. To do so, we go up to phpMyAdmin and click on lynda, which is the name of the database we are using for this course. Each of the things you see here in this left column and here in the main part of the screen are individual tables. The names of these tables are fairly self-explanatory for the most part. For example, let's take one of the simpler ones. User, we go down and we click where it says users here and we see the structure of the database.

Each one of the rows here: name, pass, mail, and so forth is a field in that table. The mail field for example stores the email address for that user that the user gave when they created that account. If you click on the little icon to the left of that word user here, you get to browse the database. The other way to do that is by clicking on Browse up here, then you see the values that are in the database itself. Right now we have two users. When you create a Drupal site, user ID 0 is the anonymous user. It's sort of the placeholder for people who haven't actually logged into this site. User ID 1 is the super administrator who can do everything. From then on, everybody else is an authenticated user.

Information about these roles is stored in another table, here called role. In the roles table, we see the two roles that are setup in Drupal automatically. Role ID 1 is the anonymous user. Role ID 2 is an authenticated user. If we were to setup other roles later, they would be roles ID 3, 4, and so forth, and they would have whatever names we gave them. Then when we create users and assigned them to that role, those two would be connected so that a user would have a role ID.

Let's go back briefly to our users table however. And then let's go back to our site and actually create a user. To do so you would go to Administer > User management > Users > Add user. So under Username, we are going to make it tom, E-mail address tom@example.com. Password, we'll just say password. Password of course we have to confirm, password. Scroll to the bottom. Active user, we are not going to notify them of it, but we create the account. Good, and it's all done.

Now that we've created that user, let's see what actually happened in the database. So we go back to phpMyAdmin, and click again to browse the user's table. You'll notice there is tom, user ID 3. I think somewhere in the middle there I created another user and then deleted it, so instead of saying 2 it was 3. It will keep increasing the user ID automatically, so you don't have to worry about it. But you can see there is our Password, it's encrypted so that someone who is looking at the database can't simply see it. The e-mail address, some flags on it to say whether or not they are an active user, when they last logged in and so forth.

This example is going to be more complex, because when you create a node in Drupal, it actually affects many more tables. If you look along this left-hand side, you'll see node, node_access, node _common_statistics, etcetera, but let's go ahead and do that we'll see how it works. So we go back to our site and Create content. This time I'm going to create a story and I'm going to say "Hello again, world!" The body is "Did you miss me?" and I'll scroll to the bottom and since this is a story, it will go to the front page automatically that's in Publishing options here, and Save. If we go back to our front page, we see there it is.

Now let's go back to our database and see exactly what happened. We click up here to go back to phpMyAdmin. Let's start with a node table. And there we see the first page we created earlier in this course, Hello, world! and there is our second one. It has a node ID, known as nId, a version ID, vId, and a lot of other information in here, but interestingly, it doesn't include the body of the node. That is actually referred to in another table, in node_revisions. If we go there, so you can see the Drupal actually keeps a complex set of relationships between node tables, and node revisions tables, and even the user tables. Here you can see which user created it, with the uId.

For those of you who want to get really deep into Drupal's database, I would like to suggest a few resources. The first one is a module called schema, and it's available at drupal.org/project/schema. A schema describes how a database is built, and this module will show you how your particular database is created and interacts a little bit better while you are running your Drupal site. The second module is called devel. Devel is for any kind of Drupal developer. It will show you the SQL commands that are being sent to and from the server, PHP messages, very useful if you are doing any sort of high-end Drupal development.

So, that gives you an introduction to how Drupal handles data. I know this knowledge may seem arcane now, but it will help you in many ways beyond this course. For example, if your Drupal site is broken, you might be able to fix it by manipulating the database directly. And a thorough understanding of the database is essential to importing legacy data or to writing custom modules that use data in some way. The functions of those 45 or so tables installed in Drupal by default, and the tables installed by dozens and dozens of common modules are a worthwhile study if you want to go further with your Drupal database knowledge. All it takes is phpMyAdmin, a Drupal installation and plenty of time.

Show transcript

This video is part of

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

50 video lessons · 11178 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

Are you sure you want to delete this note?

No

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.