OutSystemsエンジニアの猛勉強ブログ

初心者OutSystemsエンジニアのブログです(ぺこり)。

データベースの生成とリレーションシップ1.3(前編)

小林である。
もうあと30分で土曜日であり、3週間ぶっ続けで労働しているあのなんだかすごく素敵で格好良くてハンサムで背が高くて頭が良いことで有名なあの小林である。

まあ、全部妄想な訳なのだが、そんな訳でトレーニングをスタートする。

土曜日だから休みたいって?

馬鹿おっしゃい!!

土曜日だからこそ他の仕事が来ないためブログの仕事に専念できるのですよ。
分かりますか?この土日は死ぬほど働く!!ことで、原稿をアホみたいに書き上げ、ブログの記事を更新させまくる。言うならば土日とは己の仕事のために自由に仕事のできる素晴らしい曜日のことを言うんですよ。

というわけで、トレーニングという名の労働を開始しようではないか、諸君!

 

1.3

f:id:neomatsudaira:20160205233241p:plain

基礎コース1.3のトレーニング内容は

 “多対多の関係を作成して表示および

 多対多の関係のデータモデルを作成します。“

です。


これ別に意味覚える必要はありません。
多対多の関係についても説明できる能力や知識などは一切必要ありません。一番大切なことは手を動かしてアプリを作れること、です。これに集約されます。

我々はエンジニアだから丁寧に説明できる知識なんて必要ありません。
技術者です。何かを作る人です。技術者とは工場エンジニアがそうであるように、私たちもソフトウェアという実態のない「情報を作る技術者」になれればよく、それらのうんちくを説明できる能力よりも、実際にアプリを作れてしまうことのほうが社会は高く評価してくれるのです。

なぜなら、日本は技術者が不足しているからです。
何かを作れる人がこの国では減っているのです。ということで、今回は在庫と陳列商品を連動されるリレーショナルデータベースを作成します。
結構簡単なトレーニングです。

 

まずはトレーニング動画の日本語字幕の説明でも見ていきましょう

f:id:neomatsudaira:20160205234742p:plain

日本語訳:いままで作ったデータベースを連結させます。

 

f:id:neomatsudaira:20160205234806p:plain

日本語訳:注文の内容を表示しましょう(笑)。

 

で、まずは商品データベース(Order)と在庫データベース(Product)を連結させるためにもう一つのデータベースを生成させる必要があります。新規で作成するデータベースの名前は「OrderItem」とします。日本語訳すると「注文商品データベース」となります。

注文した商品が現在在庫にあるのか?あるのだとしたら、どれくらいの数量あるのだろうか?を知る必要があるため、データベースを連結させるということです。

 

では、右クリック1本でデータベースを生成させましょうぞ。

f:id:neomatsudaira:20160205235725p:plain

はい。できました。

空のデータベースだったら5秒で生成できます。
とても恵まれた時代です。

 

次に、リレーションシップ(連結)させるために、生成したデータベースをダイアグラム(Diagram)内にドラッグアンドドロップさせます。

f:id:neomatsudaira:20160206000509p:plain

(ダイアグラム内にドラッグアンドドロップさせてる小林の開発画面)

 

ドロップ後の小林の開発画面はこう!

f:id:neomatsudaira:20160206000856p:plain

 

トレーニング動画では

f:id:neomatsudaira:20160206001307p:plain

”このEntityは注文の内容を表すので”

 

f:id:neomatsudaira:20160206001404p:plain

”そのOrderのItemを特定する必要があります。”

 

うむ。
なにをおっしゃっているのかというと、新規で作成したOrderItem(注文商品)データベースには役割が2つあるということです。まず、注文された商品を特定する必要がある。次に、その商品をProduct(製品、ていうか在庫)データベースと連動させることで、注文分の製品とその数量が現在存在するのかを特定させる必要があるということです。

だって、無いものは売れないから納期をずらすなり、いま品切れですって言うなりしないと売っちゃった後に「やっぱり在庫はありませんでした」では済まないから、売り場と在庫のデータベースを連結させるということです。

よって、OrderItem(注文商品)データベースは、商品データベースと製品データベースをリレーションシップ(連結)させる役割を担ったデータベースであるということであり

 

そのために、エンジニアがやるべきことは、こうなる!

f:id:neomatsudaira:20160206002443p:plain

 OrderItem(注文商品)データベースを新規に生成させることによって、OrderデータベースとProductデータベースがOutSystemsにおいては自動的に連結される。

 

 ついでに、アトリビュート(列)を2つ追加させる

f:id:neomatsudaira:20160206002856p:plain

緑の枠2つはリレーションシップ(連結)させるのに必要な外部キー。だから「~~Id」って名称になる。

その下2つの水色の枠は注文数(Quantity)と合計金額(TotalPrice)の列。
さすがに、ね。こう何度も何度も反復してアプリ作ってたらいくら私が視力0.08の障害者でも体が勝手に覚えるはオラーッ!
って感じです。

 

(次のトレーニングに進みます)