function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion

To Normalize or Not To Normalize?

Hello Developerforce!


I am a student developer with Oregon State University's Business Solutions Group and we are currently working on a Salesforce migration/integration project for one of the University's colleges. As you can imagine, the data we are working with is coming from several different places and in a variety of different formats. I was wondering if anyone with more experience in setting up Salesforce object schemas could talk about the pros and cons of relational database style normalization in Salesforce. What do we gain by not normalizing and using Record Types to categorize data? What do we lose?        


This message was inspired by this webpage:

It seemed helpful, albeit incomplete.         


The answer to this question seems critical to the success of this project, so any thoughts or advice are very much appreciated. Thanks!


It really depends on exactly what type of data you are moving. For example, if you are moving similar data that was stored in a very normalized fashion in the original database, then storing that data in a single Salesforce object with different Record Types and page layouts might make sense.Salesforce does support a relational data model, but there are issues if you try to make it too relational. For example, sending email templates that include data from multiple objects, reporting, views, etc.


Do you have some examples of the data types / sources you intend to move over to Salesforce? That might help with some of the discussion around what goes where.



Absolultely! Like I said, the data we are moving is coming from a bunch of different places: Access databases (BCNF), Oracle databases (~2NF), online web forms, etc. We are interested in tracking and reporting on student performance in the OSU Honors College from applicant to alumnus. The data we will be moving will look something like this (broken down into potential Salesforce objects): 



Identifying information


- Candidate (eligible student from recruiting who has not applied)

- Applicant (has submitted an application)

- Accepted student

- Current student 



Grades, classes taken, major college information, etc.



Instructor/professor, college, credit value, etc.


This list is not exhaustive, of course. We will also be tracking billing information, professors, internships, etc. The list above just reflects how one might break our current data down into custom salesforce objects. I hope that helps!