設計図: 用語集

DESIGN


■ TABLE

TermDictionary

コンピュータ用語集用のテーブルです。一つの用語は、複数の見出し語 (インデックス) を持てます。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
TermID longkey PRIMARY - AUTO 主キー
LastUpdate datetime   - GETDATE() 最終更新日
Visible bit   - 0 公開されているか
MainLetterChainID longkey FOREIGN OK   見出し語 ID (NULL 時は最初に見つかった用語)
Headline nvarchar/100   -   概要 (短めの文章)
Details nvarchar/600   OK   内容 (概要では言い切れない部分)
Example nvarchar/600   OK   例 (使用例、具体例など)

 

外部キー

FIELD REFERENCE NOTE
MainLetterChainID TermDictionaryIndexChain.ChainID  

 

TermDictionaryLinks

コンピュータ用語集の関連用語をテーブルです。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
LinkID longkey PRIMARY - AUTO 主キー
TermID longkey   -   対象用語 ID
LinkLetter nvarchar/128   -   関連用語 (文字列)

 

外部キー

FIELD REFERENCE NOTE
TermID TermDictionary.TermID  

 

TermDictionaryKindChains

コンピュータ用語とその種別とを結びつけるテーブルです。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
ChainID longkey PRIMARY - AUTO 主キー
TermID longkey   -   対象用語 ID
KindID key   -   用語種別 ID

 

外部キー

FIELD REFERENCE NOTE
TermID TermDictionary.TermID  
KindID TermDictionaryKind.KindID  

 

TermDictionaryKind

コンピュータ用語の種類を記録しているテーブルです。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
KindID key PRIMARY - AUTO 主キー
Name nvarchar/32   -   種別文字列

 

TermDictionaryIndexChains

コンピュータ用語とその検索/表示用文字列とを関連付けるテーブルです。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
ChainID longkey PRIMARY - AUTO 主キー
TermID longkey   -   対象用語 ID
IndexID longkey   -   用語インデックス ID

 

外部キー

FIELD REFERENCE NOTE
TermID TermDictionary.TermID  
IndexID TermDictionaryIndex.IndexID  

 

TermDictionaryIndex

コンピュータ用語の検索/表示用文字列を記録します。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
IndexID longkey PRIMARY - AUTO 主キー
Letter nvarchar/128   -   表示用テキスト
Pronunciation nvarchar/128   OK   表示用よみがな (発音)
SearchLetter nvarchar/128   -   検索用テキスト
SearchPronunciation nvarchar/128   OK   検索用よみがな

 

TermDictionaryStatus

コンピュータ用語の状態を記録します。システムの付加を減らすために使用します。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
Identifier bit ? - 1 常に 1 を示す
LastUpdate datetime   - GETDATE()  最終更新日
VisibleTerms int   - 0 可視状態の用語数
HiddenTerms int   - 0 不可視状態の用語数

 

TermDictionaryHitLog

コンピュータ用語のヒット数を保持します。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
HitID longkey PRIMARY - AUTO 主キー
LastUpdate datetime   - GETDATE()  最終更新日
Letter nvarchar/128   -   検索に使用された文字列
HitCount int   - 0 成功/失敗数
IsMishit bit   - 1 HitCount を失敗数とするか

 

■ VIEW

ViewTermDictionaryHitLog

ログから、ヒットした用語の一覧を取得します。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
HitID TermDictionaryHitLog    
LastUpdate TermDictionaryHitLog    
Letter TermDictionaryHitLog    
HitCount TermDictionaryHitLog    

 

実装

SELECT HitID, LastUpdate, Letter, HitCount FROM dbo.TermDictionaryHitLog WHERE (IsMishit = 0)

 

ViewTermDictionaryMishitLog

ログから、ヒットしなかった用語の一覧を取得します。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
HitID TermDictionaryHitLog    
LastUpdate TermDictionaryHitLog    
Letter TermDictionaryHitLog    
HitCount TermDictionaryHitLog    

 

実装

SELECT HitID, LastUpdate, Letter, HitCount FROM dbo.TermDictionaryHitLog WHERE (IsMishit = 1)

 

ViewTermDictionaryTotalMishitCount

ログから、ヒットしなかった用語の総数を取得します。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
Total ViewTermDictionaryMishitLog SUM(HitCount) ミスヒット総数
LastUpdate ViewTermDictionaryMishitLog MAX(LastUpdate) 最終ミスヒット日

 

実装

SELECT SUM(HitCount) AS Total, MAX(LastUpdate) AS LastUpdate FROM dbo.ViewTermDictionaryMishitLog

 

ViewTermDictionaryTotalHitCount

ログから、ヒットした用語の総数を取得します。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
Total ViewTermDictionaryHitLog SUM(HitCount) ヒット総数
LastUpdate ViewTermDictionaryHitLog MAX(LastUpdate) 最終ヒット日

 

実装

SELECT SUM(HitCount) AS Total, MAX(LastUpdate) AS LastUpdate FROM dbo.ViewTermDictionaryHitLog

 

ViewTermDictionarySyntheticStatus

用語集のさまざまな状態を取得します。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
Identifier TermDictionaryStatus   常に 1
LastRegistDate TermDictionaryStatus LastUpdate 用語集の最終更新日
VisibleTerms TermDictionaryStatus   公開用語数
HiddenTerms TermDictionaryStatus   非公開用語数
TotalHit ViewTermDictionaryTotalHitCount Total 用語のヒット数
LastHitDate ViewTermDictionaryTotalHitCount LastUpdate 最終ヒット日
TotalMishit ViewTermDictionaryTotalMishitCount Total 用語のミスヒット数
LastMishitDate ViewTermDictionaryTotalMishitCount LastUpdate 最終ミスヒット日

 

実装

SELECT dbo.TermDictionaryStatus.Identifier, dbo.TermDictionaryStatus.LastUpdate AS LastRegistDate, dbo.TermDictionaryStatus.VisibleTerms, dbo.TermDictionaryStatus.HiddenTerms,  dbo.ViewTermDictionaryTotalHitCount.Total AS TotalHit, dbo.ViewTermDictionaryTotalHitCount.LastUpdate AS LastHitDate, dbo.ViewTermDictionaryTotalMishitCount.Total AS TotalMishit, dbo.ViewTermDictionaryTotalMishitCount.LastUpdate AS LastMishitDate FROM dbo.TermDictionaryStatus LEFT JOIN dbo.ViewTermDictionaryTotalHitCount ON Identifier = 1 LEFT JOIN dbo.ViewTermDictionaryTotalMishitCount ON Identifier = 1

 

ViewTermDictionarySimpleIndex

コンピュータの一覧表示用ビューです。不可視状態の用語は含まれません。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
TermID ViewTermDictionarySimpeIndexAll    
LastUpdate ViewTermDictionarySimpeIndexAll    
Letter ViewTermDictionarySimpeIndexAll    
Pronunciation ViewTermDictionarySimpeIndexAll    
Headline ViewTermDictionarySimpeIndexAll    

 

実装

SELECT TermID, LastUpdate, Letter, Pronunciation, Headline
FROM dbo.ViewTermDictionarySimpleIndexAll
WHERE (Visible = 1)

 

ViewTermDictionarySimpleIndexAll

コンピュータの一覧表示用ビューです。不可視状態の用語も含まれます。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
TermID TermDictionary    
LastUpdate TermDictionary    
Visible TermDictionary    
Letter TermDictionaryIndex    
Pronunciation TermDictionaryIndex    
Headline TermDictionary    

 

実装

SELECT dbo.TermDictionary.TermID, dbo.TermDictionary.LastUpdate, dbo.TermDictionary.Visible, dbo.TermDictionaryIndex.Letter, dbo.TermDictionaryIndex.Pronunciation, dbo.TermDictionary.Headline
FROM dbo.TermDictionary INNER JOIN dbo.TermDictionaryIndexChains ON dbo.TermDictionary.MainLetterChainID = dbo.TermDictionaryIndexChains.ChainID AND dbo.TermDictionary.TermID = dbo.TermDictionaryIndexChains.TermID INNER JOIN dbo.TermDictionaryIndex ON dbo.TermDictionaryIndexChains.IndexID = dbo.TermDictionaryIndex.IndexID