Logical Data Model - Five Pro-Tips for Data Modelling

We are continuing in our series of articles about the Logical Data Model in GoodData, in previous articles you’ve learned first what the Logical Data Model in GoodData is, then what objects it consists of and previous article what are the basic rules for creating a viable model. If you have missed any of the articles, please read them before continuing with this one.

Today, we will show you a few tips you should always follow when designing a Logical Data Model. Here are some more tips to work with LDM in GoodData like a pro:

  • Tip 1: Not all datasets have to be connected. It is possible to have several unrelated “silos” in one data model. You will just not be able to combine the unrelated datasets in a single insight.

  • Tip 2: The arrows (references) go from the Primary Key to the Foreign Key in GoodData (opposite than in most other tools). So do not get confused by this. Each arrow means a one-to-many relationship (with the tip of the arrow pointing to the “many” side).

    What can also help is to know that in the Modeller you will always see the foreign keys at the bottom of the dataset under a line. This is, for example, how to model that each Order Line has one product and each product can be mentioned in zero or more sales records.

    Data Model Visualization
  • Tip 3: Always consider the granularity of your dataset—understand what a single record means. All facts in a dataset should have the same granularity.

  • Tip 4: If you need to join/reference two datasets using a multi-column key (which is not possible in GoodData), generate a separate single attribute which will contain concatenated values of all the columns used in the key. For example, if you plan to join by companyID + orderID, create an attribute which combines these two.

  • Tip 5: It is good practice to arrange the Logical Data Model diagram in a way that all the arrows go from left to right. It might seem weird at the beginning (because then it does not look much like a star or a snowflake), but it makes it much easier to understand the model because you always know which direction each arrow is pointing and where the primary and foreign keys are. Since all arrows are pointing from left to right, you are left with no ambiguity. This is also how all GoodData tools handling the data model display it by default.

    Compare this

    Data Model Before

    With the picture of exactly the same data model, just aligned by the rules described above. Which one is easier to follow the arrows?

    Data Model After

Next article in this series is: Logical Data Model - Performance Considerations

Let us know how you like this series and feel free to post questions if something is not clear to you. For more information and practice about data modelling, please also attend our free courses at GoodData university.