1. 程式人生 > >不會英語的程式設計師不是好開拓者

不會英語的程式設計師不是好開拓者

笛卡爾積數學概念

        笛卡爾積是指在數學中,兩個集合X和Y的笛卡尓積(Cartesian product),又稱直積,表示為X × Y,第一個物件是X的成員而第二個物件是Y的所有可能有序對的其中一個成員。

        笛卡爾積又叫笛卡爾乘積,是一個叫笛卡爾的人提出來的。 簡單的說就是兩個集合相乘的結果。 

        假設集合A={a, b},集合B={0, 1, 2},則兩個集合的笛卡爾積為{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

笛卡爾積在sql中是這樣的

        我們對資料庫表進行操作時,經常會對多張表進行關聯,多表連線查詢大家肯定不會陌生,但是一不小心很容易出來龐大冗餘的資料。如下例所示:

        

   解決辦法

        這樣冗餘的資料可不是我們想要,所以想要你的結果避免笛卡爾積,既要做到以下幾點:

        1.關聯範圍在最小粒度的列。

        2.如果是三張表連線,並且是1:n:n的關係,就要先關聯兩張表,然後將兩張表關聯的結果與第三表在進行關聯,這樣就可以取得我們想要的結果啦!多張表同理!