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

Planning data structure

From: Drupal 6: Online Presentation of Data

Video: Planning data structure

This video is unusual because there is nothing in it that's specifically about Drupal. Instead we are going to talk about concepts that are essential to understanding later chapters, specifically, how databases are structured. Learning what's in this video is the ounce of prevention that will keep you from needing a pound of cure later because without good planning from the start, you might have to throw everything away and start again. In fact, you will probably find yourself returning to this video from time to time to better understand ideas you'll need, once you start playing with Drupal. So, let's talk about databases. What are they? Well, a database, obviously, is a place that contains data. Well what is data? Here is the kind of data that you are already familiar with: names and address. In this example, we've taken our data that is a name and address and a phone number and so forth and put it into what's called a record. Each one of these is a record. Tom De Nada at 123 Fake Street, etcetera etcetera is a single record. You could stop right here. Before computers, we old timers kept records on 3x5 cards just like this, but there are limits to storing data like this.

Planning data structure

This video is unusual because there is nothing in it that's specifically about Drupal. Instead we are going to talk about concepts that are essential to understanding later chapters, specifically, how databases are structured. Learning what's in this video is the ounce of prevention that will keep you from needing a pound of cure later because without good planning from the start, you might have to throw everything away and start again. In fact, you will probably find yourself returning to this video from time to time to better understand ideas you'll need, once you start playing with Drupal. So, let's talk about databases. What are they? Well, a database, obviously, is a place that contains data. Well what is data? Here is the kind of data that you are already familiar with: names and address. In this example, we've taken our data that is a name and address and a phone number and so forth and put it into what's called a record. Each one of these is a record. Tom De Nada at 123 Fake Street, etcetera etcetera is a single record. You could stop right here. Before computers, we old timers kept records on 3x5 cards just like this, but there are limits to storing data like this.

For example, let's say that you wanted to sort it by street address, you really couldn't do that because this whole record starts with the letter T for Tom De Nada or S of Sylvia De Nada and when you are sorting something you only sort based on the first letter or first few letters, you would have to look into the middle of the record in order to do a sort on the street name, which would be very difficult computationally. So, we don't set up our databases this way, but there is a solution. You can break records into what are called fields, where if the name is a field and the address is a field and the phone number is a field.

Here is what that looks like, each one of the records in now shown as a row, so Tom De Nada at 123 Fake Street San Francisco etcetera is the same record that you saw before. However, it's been broken into fields, fields with the columns that you see here. So as you look down address 123 Fake Street, 19 South Moggy Street, those are all fields within their individual records. This is what's called a Flat-file database. That compares to a relational database, which we'll get through in just a minute. It's the simplest way to store data. It's the way that most of us find most intuitive.

And once again just to remind you, each row is a record, each column is a field and the whole thing is called a table. But you have many choices when it comes to setting up a database. The first one is, how exactly do you break up the fields? In our example before, we had the full name just under Name and we had the full address just under Address. But we could have done it a different way, if we had broken it up more, we could have separated out the First name from the Last name and the Street number from the Street name and even from the Street type, so a street would be different from avenue would be different from route.

This is what's called making it more atomic, sort of like breaking up a molecule into separate atoms. The advantage to this is that now you would be able to sort not only on the Street number but also the Street name. You could sort not only on the First name but also on the Last name and so forth and you could pull out those pieces of information and replace them more easily once they are in the database program. The disadvantage of this format is in putting in the information usually and also managing it once its there. You have all typed into a form at times and you've typed Tom and then you have to press Tab to go on to the next field and then Tab. You end up pressing Tab a lot and you end up with lots of tiny little atoms, so it is possible to break up a record into two many fields.

But what should be clear from this example is that the record in the first table here, Tom De Nada at 123 Fake Street is exactly the same as the record in the second table here, the only difference is how it's broken up. So, now we have broken up our table into atoms like this. But what if we want to put it back together to print out mailing labels? That's where the database programming comes in. You need to come up with some sort of formula to put it all together. For example we see that here the name goes on one line and then we have to put in a new line symbol for that second line.

So Tom De Nada, new line, 829 14th Street, new line, city comma space state. It gets a little bit complicated and in fact when you look at the formula itself, you see that it can actually be a little bit difficult to understand. The subject of how you break up information into separate fields and then how you put it back together again is the very essence of this course. The first part is how to get the information into the database, what fields you want actually to be separated out. We cover that when we talk about an area called Content Construction Kit or CCK. That's the module that's available for Drupal which lets you decide what fields to go into a particular content type.

So in this case we have something, let's call it a person content type and we have broken it up into a Name, Address, City and so forth. Then each time we create a record, we'll put in the individual's Name, Address and City and so forth. Again we can break it up in many different ways but however we do it, we implement it using this Content Construction Kit. The second part is about putting the information back together again and we do that using a module called Views. We are going to talk about both of these modules in great detail throughout this course. There is a little bit more to know though. Often times when you are building a database, you find that you are repeating information. Let's take a look at these three people Mimi de Nada, Conrad de Nada and Sylvia de Nada. They all live at the same place, 19 South Moggy Street. Wouldn't it be good if we could just take out that information so we only had to type it in once and then have each one of those people live in this one household? The way we do that is we create multiple tables. So before we had a single table for people with their name and their address and their phone number and so forth and now we are going to have one for people and one for households and it will look something like this. This is the people table. In each one we have the Name and Phone number and Email address, but we only have a reference to the Household. The three people you see at the beginning there Mimi, Conrad and Sylvia they all live in the same household. So we just say okay, they live in household number 1. Then later we define what the household is. That household number 1 is 19 South Moggy Street etcetera.

The reason that this works is because we make one table relate to another. Where we have household 0001 in the people table, we can make it point to household 0001 in the household table where it actually spells out where that household is. This is what's called a Relational Database and it is in fact the way that Drupal's database is constructed, which brings us to why you need to know all of this. When you are planning out your data driven Drupal site, you need to figure out first of all what fields you are going to need, what do you think you are going to need to pull out of if and recombine. All of that depends on your application, that is, what you will be using your Drupal site for.

That requires a little bit of foresight. You have to think about data presentation first. Imagine what you want it to look like when you are done. What information do you want to get across? The fact is this is a very difficult thing to do because usually when you are starting out, you haven't solved all of those problems, but don't worry about it. The skills you will learn in this course will allow you to go back and re-figure all of these things. I do want to give you a tip though. Before you start adding large amounts of data run a view tests first. Just enter a small subset of it so you can see how it's all working out and then try to dry out the data in ways that you want to present it, so that you can see if it's actually working for you before you bring in thousands of records or open up your site to the public.

When you are planning your database, try to keep it pretty atomic. Think of all the possible reasons you would want to pull out different pieces of data. But keep in mind that the more atomic you make it, the more complicated your database can become. It's also good to know that Drupal itself is a relational database. There are times that you might want to manipulate Drupal's native database and I'll show you how to do that and just knowing how it works and being able to find how one table relates to another can be very useful later on. So I hope this has given you the basis you need to understand how to construct your site, because first of all you have to decide what it is you want.

We will talk more about the specifics such as Drupal's internal database in the video Understanding How Drupal Stores Data and we'll talk more about the specifics of how to implement this throughout the course.

Show transcript

This video is part of

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

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