設計図: 言語情報
DESIGN
■ TABLE
LanguageGroup
言語情報系を保存するテーブルです。
テーブル設計
FIELD TYPE KEY NULL DEFAULT NOTE LangGroupID key PRIMARY - 主キー Language varchar/64 - プログラミング言語名 CompanyID longkey FOREIGN OK 関係会社 ID RegistDate datetime - GETDATE() 登録日
外部キー
FIELD REFERENCE NOTE CompanyID CompanyInformation.CompanyID
トリガ
同一名称のものが登録されるのを阻止します。
CREATE TRIGGER [tr_LanguageGroupCheck]
ON dbo.LanguageGroup
FOR INSERT, UPDATE
NOT FOR REPLICATION
AS
-- 名前が更新される場合のみを対象とする。
IF UPDATE([Language])
BEGIN
IF
(
SELECT count(*) FROM LanguageGroup
WHERE [Language] IN (SELECT [Language] FROM INSERTED)
) > 1
BEGIN
RAISERROR('同一の Language が既に存在しています。', 16, 1)
ROLLBACK TRAN
END
END
RETURN
■ VIEW
ViewLanguageListing
言語一覧をリストアップするためのビューです。
ビュー設計
FIELD ORG-TABLE ORG-FIELD NOTE LangGroupID LanguageGroup Language LanguageGroup CompanyID CompanyInformation CompanyName CompanyInformation Name RegistDate LanguageGroup
実装
SELECT dbo.LanguageGroup.LangGroupID, dbo.LanguageGroup.Language,
dbo.CompanyInformation.CompanyID,
dbo.CompanyInformation.Name AS CompanyName,
dbo.LanguageGroup.RegistDate
FROM dbo.LanguageGroup LEFT OUTER JOIN
dbo.CompanyInformation ON
dbo.LanguageGroup.CompanyID = dbo.CompanyInformation.CompanyID