⊗pyPmDOLT 122 of 129 menu

Pythonにおけるデータベースのテーブル結合

ユーザーの名前と居住都市を格納するテーブルがあるとします:

users
id name city
1 user1 city1
2 user2 city1
3 user3 city2
4 user4 city1
5 user5 city3
6 user6 city2

このテーブルの欠点は、同じ都市が異なるユーザーに対して複数回繰り返されることです。 これはいくつかの問題を引き起こします。

第一に、繰り返しが続くと、データベースが占有するスペースが大幅に増加します。

第二に、都市に関する操作を実行するのがかなり不便です。 たとえば、すべての都市のリストを画面に表示したいとします。 これは簡単にはできません。 すべてのユーザーとその都市を取得し、取得した都市から重複を削除して、初めてそのリストを取得することになります。

ここで、データベースに 10000 人のユーザーがいて、それらが 10 の都市にいると想像してください。 この 10 の都市のために、膨大な行数のテーブル全体を取得する必要があります。 それは非常に遅い操作となり、無意味なリソース消費になります。

問題の解決策

テーブルを2つに分割する必要があります。 1つには都市を格納し、もう1つにはユーザーを格納します。 その際、ユーザーテーブルには、ユーザーの都市を参照する city_id カラムが含まれます。

それでは、2つのテーブルを作成しましょう。 都市テーブル:

cities
id name
1 city1
2 city2
3 city3

ユーザーテーブル:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

実践的なタスク

商品(名前、価格、数量)とそれらの商品のカテゴリを格納する必要があるとします。 格納構造を記述してください。

河川と、それらの河川が流れ込む海を格納する必要があるとします。 格納構造を記述してください。

都市と、それらの都市が位置する国を格納する必要があるとします。 格納構造を記述してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否