system-sekkei/isolating-the-domain

ビューの導入に関する質問

Closed this issue · 2 comments

下記2つのクエリはWHERE句、ORDER BY句以外は同じですが、ビューにはされない方針でしょうか。

SELECT
従業員.従業員ID as "employeeNumber.value",
従業員の名前.従業員名 as "name.value",
従業員のメールアドレス.メールアドレス as "mailAddress.value",
従業員の電話番号.電話番号 as "phoneNumber.value"
FROM 給与.従業員 as 従業員
INNER JOIN 給与.従業員の名前 as 従業員の名前 on (
従業員.従業員ID = 従業員の名前.従業員ID
) INNER JOIN 給与.従業員の電話番号 as 従業員の電話番号 on (
従業員.従業員ID = 従業員の電話番号.従業員ID
) INNER JOIN 給与.従業員のメールアドレス as 従業員のメールアドレス on (
従業員.従業員ID = 従業員のメールアドレス.従業員ID
) INNER JOIN 給与.契約中 as 契約中 on (
従業員.従業員ID = 契約中.従業員ID
)

SELECT
従業員.従業員ID as "employeeNumber.value",
従業員の名前.従業員名 as "name.value",
従業員のメールアドレス.メールアドレス as "mailAddress.value",
従業員の電話番号.電話番号 as "phoneNumber.value"
FROM 給与.従業員 as 従業員
INNER JOIN 給与.従業員の名前 as 従業員の名前 on (
従業員.従業員ID = 従業員の名前.従業員ID
) INNER JOIN 給与.従業員の電話番号 as 従業員の電話番号 on (
従業員.従業員ID = 従業員の電話番号.従業員ID
) INNER JOIN 給与.従業員のメールアドレス as 従業員のメールアドレス on (
従業員.従業員ID = 従業員のメールアドレス.従業員ID
) INNER JOIN 給与.契約中 as 契約中 on (
従業員.従業員ID = 契約中.従業員ID
)

この共通化は、やるとしたら、MyBatis の sql 要素でやりたいところですね。

ビューは基本的に使っていません。
テーブルの設計や、マッピング先のクラス設計は、いろいろ変えていきたいと思っています。
その時に、ビューを使わないシンプルな構造のほうが、変更が楽で安全だと考えています。

ご回答ありがとうございます。
ご回答いただいた内容を反映したプルリクエストを上げさせていただきました。