スノーフレークスキーマの拡張
この会社は、カナダとアメリカの書店にとどまらず、事業を拡大することを検討しています。特に、新たな大陸への展開を視野に入れており、その準備として、店舗の住所に continent(大陸)フィールドを追加することにしました。
今回のシナリオではスノーフレークスキーマを使用しています。動画でも説明したように、スノーフレークスキーマはデータの整合性を保ちながら拡張しやすい構造です。dim_country_sf に加え、dim_continent_sf というテーブルも用意されています。このテーブルには、現在必要な大陸である North America と主キーが含まれています。この演習では、dim_country_sf を拡張して dim_continent_sf を参照できるようにしましょう。
この演習はコースの一部です
データベース設計
演習の手順
continent_idを、デフォルト値1のdim_country_sf列に追加してください。NOT NULL DEFAULT(1)は、値がnullになることを禁止し、デフォルト値を1に設定する制約です。- 追加した列を、
dim_continent_sfのcontinent_idを参照する外部キーに設定してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- Add a continent_id column with default value of 1
ALTER TABLE ___
ADD ___ int NOT NULL DEFAULT(1);
-- Add the foreign key constraint
ALTER TABLE ___ ADD CONSTRAINT country_continent
FOREIGN KEY (___) REFERENCES ___(___);
-- Output updated table
SELECT * FROM dim_country_sf;