Site columns and Content types are two foundational pieces within SharePoint that can help structure your information architecture in a systematic manner. We are going to take this approach from the simple and ever present example of the address book. Before proceeding, let’s setup the definitions for each one.
Metadata: A descriptive term or group of words that define data.
Site Columns: A site columns is a field that provides a central, reusable model for metadata definitions. When a site column is created each list that uses this column has the same definition, and you do not have to reproduce the column in each list.
Content Types: A grouping of site columns that can be reused in capturing metadata or information about a specific type of content. Content types are designed to help users organize their SharePoint content in a more meaningful way.
Profile: A collection of site columns containing metadata about a single contact.
Address book: A collection of profiles stored in a single location for ease of management and access. In this example, the Address Book is our content type.
Metadata - as used in an address book
Using the address book analogy, metadata can be explained as information or content entered into the fields or columns about a single contact in profile that makes up contacts in the address book. When looking at the that profile of a contact we know that the person has a First and Last Name, Address, Phone Number, Zip Code, etc. This information such as "First Name = John" and "Last Name = Doe" would be considered the metadata that we need to capture for those fields. Metadata also can be classified by type such as a number, text, or even currency. When putting together our Site Columns it is important to ensure we are using the right types of metadata to capture the information correctly. You do not want to use a number field to capture text or vice versa.
For this example we will have the following metadata to be captured:
Nicole Caron, 4321 Old Oak Rd. Redmond, WA 86453
Site Columns - Explained as contact fields in the profile of an address book
Using the address book analogy, site columns can be explained as fields or columns that capture information pertaining to the contact. Remember that Site columns are containers for metadata or content about a given thing. Here, each field in an address book can be considered a site column. Based on the image below we can see that fields such as First Name, Last Name, Address, City, State, etc are all necessary to capture someone’s information for the address book.
For this example we will have the following site columns with their corresponding metadata:
First Name = Nicole
Last Name = Caron
Address = 4321 Old Oak Rd.
City = Redmond
State = WA
Postal Code = 86453
Some people may ask, "Why don't we just use one field called Profile and put everything within it?" There are advantages to using more than one field to capture the same data. Imagine every field is a separate container. If you are looking at your data, you may not always want everything that comes from the profile. Sometimes you may just need a count of people by last name, or by zip code. There are times where you don't want to sift or search through unnecessary data to get to the information you need. Other advantages for keeping your data in separate containers is that you can group and filter on the container a lot easier than one massive text field. You also expand your choices for counting the data and or just looking at it through different views.
Here's an example to prove this point: We have our address book with 500 contacts and we want to see the data sorted by Last Name, Zip Code, or even State. If all that information was in one field, we would have to write a really ugly query to sift through the text, parse the information, and then sort it for us. However, if we place them in separate containers or fields, we can simply request a sort or grouping on that specific field only and it render the results quite easily.
By using Site Columns, your data is more flexible and easier to manage. One thing we would recommend based on experience is to not overuse site columns. If there are similarities in data such as state and state abbreviations, don't make two fields unless you absolutely need them both. Many times we add more data because we didn't make a good decision up front. Make a quick decision on how you will collect the data and choose one method over the other, but never both unless it’s absolutely necessary.
Content Types - Explained as the completed profile in the address book
Content Types can also be explained using the address book analogy. Based on our previous definition, a content types is a collection or grouping of site columns. That means that a content type would be a container of containers. Content types gives us the ability to package our smaller containers and define the type of content we intend to collect and contain. The fields in the address book are site columns that make up the Profile Content Type.
For this example we will have the following content type grouping the site columns with their corresponding metadata:
Profile Content Type:
- First Name = Nicole
- Last Name = Caron
- Address = 4321 Old Oak Rd.
- City = Redmond
- State = WA
- Postal Code = 86453
Since Site Columns are able to be arranged and grouped in any manner we like, we can pick-and-choose the fields we want to use to create a variety of content types.
For example, if we want a Content Type of Birthday Greeting, we can group the site columns of First Name, Last Name, Email address and Date of Birth together and call that content type “Birthday”. Then if we ever wanted to reuse that, we could separate and view say our profiles at school by Birthday and profiles of people in our community by Birthday. In doing this we don't have to recreate the wheel, we simply reuse those fields, given us the immediate reuse of the same fields we know we will need to capture for gathering and displaying birthdays.
Hope that was a simplistic approach to content types, site columns, metadata and more which is an intricate part of maximizing SharePoint effectively. Much thanks to the contributors and their support in keeping it short and sweet.