Many-to-Many Relationships - The Whiteboard #12

Поделиться
HTML-код
  • Опубликовано: 25 дек 2024

Комментарии • 28

  • @matthewdufty606
    @matthewdufty606 Год назад +4

    I love the whiteboard series 💓

  • @erinfield1943
    @erinfield1943 6 месяцев назад

    3:00- bridge table type 1 (new information) (one-many--many-one)
    7:30- bridge table type 2 (no new information) (many-one-one-many) (won't slow down your model if there are only a few hundred rows)

  • @GeraldHilbers
    @GeraldHilbers Год назад +4

    Marco, this is a great serie of Whiteboard-sessions !!! I would appreciate if you could add a session about the do's and dont's of bidirectional relationships.

  • @tadeuszkalwak4496
    @tadeuszkalwak4496 2 года назад +1

    Thank you!

  • @fpa89
    @fpa89 6 месяцев назад +1

    Perfect, thanks

  • @erinfield1943
    @erinfield1943 6 месяцев назад

    7:45- why does Product to Brand need to be bi-directional? We have this second kind of bridge table in real estate: a borrower can have multiple collateral, and conversely, a collateral can be connected to multiple loan numbers (ie. pari-passu loans). So you need an intermediary loan-to-property code table between the Loan and Property tables. This is one-to-many-to-many-to-one, and it's uni-directional and it works just fine for Loan to filter Property.

  • @bobaiyakubu5910
    @bobaiyakubu5910 Год назад +1

    Thank you sir

  • @Milhouse77BS
    @Milhouse77BS 2 года назад

    10:55 for when to use built in * to * instead of own table. It depends on size of intermediate table.

    • @DawoodChoudry-r3j
      @DawoodChoudry-r3j 3 месяца назад

      Hey,
      There would be no intermediate table when we use * to * relationships, i did not get a clear picture after 10:55, is he trying to say if distinct values are small in size then we should to go with direct * to * relationships otherwise in large size we should use intermediate table or bridge table? Please explain me if you got my point
      Thanks!

  • @cesarsaldana3429
    @cesarsaldana3429 10 месяцев назад +1

    Solution 2 is very cheap because, who is going to create a brand-only budget... real life examples are what we need, Mr. Russo.

  • @osamaabd-elmohsen6427
    @osamaabd-elmohsen6427 Год назад +1

    Thank you for your great explanation, if I have a table with some of codes and its category and another table of the codes and its balance and stock in different stores and also category column (not all the codes are existed in the second table) now I want to create a relationship between category column in the two table (but power bi tell me it should be unique category value in both table and that is not my case ), I have tried middle table many to one one to many but it does not work ?

  • @leandrovianadasilva6768
    @leandrovianadasilva6768 Год назад +1

    Hi Marco,
    You guys always deliverying great stuff, thanks a lot!!!
    But I've a doubt.. In this model, how can I distinct count the Costumer on my fact table, is it possibel doing that? Since I dont have a Costumer FK at my fact tabel..
    In advanced, thanks a lot for the help! =)

  • @kalyanreddy6260
    @kalyanreddy6260 5 месяцев назад

    Sir, I have question
    I have
    customer dim connect to salesfact
    Supplier table connect to salesfact
    If i want to analyse sales by customer and supplier name. In this case it called as one to one relation as the above example. Both foreign keys are in fact tabke and each customer and supplier is have no relation from dim tables till confused.
    Can you clarify this

    • @SQLBI
      @SQLBI  5 месяцев назад

      That usually works out of the box without requiring any additional relationship.

  • @sandeepbarge4699
    @sandeepbarge4699 2 года назад

    Thanks for the video. Can you please explain how does suggested data modelling technique help in ensuring account balance is not considered twice while calculating totals in the very first example you gave?

    • @SQLBI
      @SQLBI  2 года назад

      It's the nature of relationships in Tabular, they don't "join" tables as you would expect in SQL, they transfer a filter. The result is like a join in simple cases, but you never "duplicate" data this way (but you can still write bad DAX code producing wrong result, of course!).

  • @mattheosprotopapas3286
    @mattheosprotopapas3286 2 года назад

    Hi Marco,
    I was wondering if a change in the granularity of the fact table, to eliminate the many-to-many, would benefit performance or not?
    To try to explain, in the first example, if we stored an account transaction multiple times in the fact table, one for each customer of the account, that would transform the model to a simple star model. With no need to have a bridge CustomerAccount table, we would just create direct relationships from the fact (which now stores data in a Customer X account granularity) to the two dimensions.
    On the other hand, we'd also need to change the DAX of most measures as they would now become more complicated (and non-additive). If for example we wanted to count the number of accounts with transactions within a given period, we'd need a DISTINCTCOUNT instead of a COUNT.
    Would you expect such an approach to benefit or worsen performance? I'm mostly interested in Direct Query settings nowadays - which is perhaps more complicated- as my current customer likes direct query a lot.
    Buon anno!

    • @SQLBI
      @SQLBI  2 года назад

      Tell your customer that DirectQuery is very expensive. Same data, you get slower performance, so in order to achieve the same performance of imported models, they have to spend more. It's their choice, of course!
      In general, duplicating data in the fact table is dangerous because you make it easier to get wrong results if you don't apply the right calculation on top of the data. The rule of thumb is to increase complexity for optimization if and only if you can demonstrate there is an overall benefit. Don't make blind assumptions, as they may be wrong and you spend more for less.

    • @mattheosprotopapas3286
      @mattheosprotopapas3286 2 года назад

      Thanks Marco (or Alberto), no risk re the calculations, I'm developing them, so no chance users with limited knowledge messing up things there.
      Tried already telling them about the benefits of import mode, will cite you as well - better chances they'll listen this way 🙂
      I'll run some test on the performance difference of virtual many 2 many vs. changing the granularity on the fact table on Direct Query myself to see what's best for their specific case.
      Thanks for your reply, happy 2023!

  • @robertohio4473
    @robertohio4473 2 года назад

    What are the pro’s and con’s of creating the Brand table in DAX vs Power Query?

    • @SQLBI
      @SQLBI  2 года назад

      No differences - DAX guarantees that the Brand table is always synchronized, whereas if the definition is in Power Query you might lose synchronization if you don't refresh all the tables.

  • @prashantadhiakri2964
    @prashantadhiakri2964 2 года назад

    Hi , Your all videos are very impressive and I am new to this Power BI, So please explain in coming videos how to create or Cohort analysis or retention analysis.

    • @SQLBI
      @SQLBI  2 года назад +1

      It's a very generic description. Look at www.daxpatterns.com for examples of specific algorithms implemented in DAX.

  • @tonib4701
    @tonib4701 Год назад

    Min 9.37...please correct me if i'm wrong but from my understanding all tables (Product, Brand and Budget) have Single (not Both / Bi-Directional) relationships...is that true

    • @tonib4701
      @tonib4701 Год назад

      At the second thought, Brand and Budget tables are related by Bi-Directional (= Both) relationship...is that true

    • @tonib4701
      @tonib4701 Год назад

      Min 7.49...i think that's the answer: The Bi-Directional relationship is between the Product & Brand tables

    • @SQLBI
      @SQLBI  Год назад

      Correct.

  • @nikolagrkovic8769
    @nikolagrkovic8769 Год назад

    at 6:30, that is how my models look like 🤣