設計図: ブックマーク

DESIGN


■ TABLE

Bookmark

URL のリンクテーブルです。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
LinkID longkey PRIMARY -   主キー
LastUpdate datetime   - GETDATE() 最終更新日
Active bit - 0 有効/無効
CompanyID longkey FOREIGN OK   関連する会社情報
Title nvarchar/64   -   サイト名
URL varchar/255   -   リンク URL
URLBanner varchar/255   OK   バナーの URL
Advertisement bit   - 0 リンクが広告であればセット
Comment nvarchar/200   OK   コメント

 

外部キー

FIELD REFERENCE NOTE
CompanyID CompanyInformation.CompanyID  

 

BookmarkCategoryLabel

ブックマークの大見出しです。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
CategoryID shortkey PRIMARY -   主キー
Label nvarchar/32   -   種別名

 

BookmarkGroupLabel

ブックマークの小見出し

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
GroupID key PRIMARY -   主キー
Label nvarchar/32   -   種別名

 

BookmarkCategory

ブックマークのカテゴリです。カテゴリラベルとグループラベルから一意のカテゴリを決定します。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
CategoryID shortkey PRIMARY -   主キー
GroupID shortkey PRIMARY -   主キー

 

外部キー

FIELD REFERENCE NOTE
CategoryID BookmarkCategoryLabel.CategoryID  
GroupID BookmarkGroupLabel.GroupID  

 

BookmarkUnitGroups

リンクのジャンルわけを記録するテーブルです。

 

テーブル設計

FIELD TYPE KEY NULL DEFAULT NOTE
UnitID longkey PRIMARY -   主キー
LinkID longkey FOREIGN -   ブックマーク ID
CategoryID shortkey FOREIGN -   カテゴリ ID
GroupID shortkey FOREIGN -   カテゴリ ID

 

外部キー

FIELD REFERENCE NOTE
LinkID Bookmark.LinkID  
CategoryID BookmarkCategory.CategoryID  
GroupID BookmarkCategory.GroupID  

 

■ VIEW

ViewBookmarkPublic

公開済みのブックマーク一覧です。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
LinkID Bookmark    
LastUpdate Bookmark    
CompanyID Bookmark    
Title Bookmark    
URL Bookmark    
URLBanner Bookmark    
Advertisement Bookmark    
Comment Bookmark    

 

実装

SELECT LinkID, LastUpdate, CompanyID, Title, URL, URLBanner, Advertisement, Comment
FROM dbo.Bookmark
WHERE (Active = 1)

 

ViewBookmarkCountByCategory

公開済みブックマークの、カテゴリごとの登録数です。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
CategoryID Bookmark    
GroupID Bookmark    
LinkCount Bookmark    

 

実装

CREATE VIEW dbo.ViewBookmarkCountByCategory
AS
SELECT dbo.BookmarkUnitGroups.CategoryID, dbo.BookmarkUnitGroups.GroupID,
COUNT(dbo.BookmarkCategory.CategoryID) AS ViewCount
FROM dbo.BookmarkUnitGroups LEFT OUTER JOIN
dbo.Bookmark ON
dbo.BookmarkUnitGroups.LinkID = dbo.Bookmark.LinkID LEFT OUTER JOIN
dbo.BookmarkCategory ON
dbo.BookmarkUnitGroups.CategoryID = dbo.BookmarkCategory.CategoryID AND
dbo.BookmarkUnitGroups.GroupID = dbo.BookmarkCategory.GroupID
WHERE (dbo.Bookmark.Active = 1)
GROUP BY dbo.BookmarkUnitGroups.CategoryID, dbo.BookmarkUnitGroups.GroupID

 

ViewBookmarkCategoryList

公開済みブックマークの、カテゴリ一覧表示用ビューです。

 

ビュー設計

FIELD ORG-TABLE ORG-FIELD NOTE
CategoryID BookmarkCategory    
CategoryLabel BookmarkCategoryLabel Label  
GroupID BookmarkCategory    
GroupLabel BookmarkGroupLabel Label  
ViewCount ViewBookmarkCountByCategory    

 

実装

SELECT dbo.BookmarkCategory.CategoryID,
dbo.BookmarkCategoryLabel.Label AS CategoryLabel,
dbo.BookmarkCategory.GroupID, dbo.BookmarkGroupLabel.Label AS GroupLabel,
dbo.ViewBookmarkCountByCategory.ViewCount
FROM dbo.BookmarkCategory LEFT OUTER JOIN
dbo.ViewBookmarkCountByCategory ON
dbo.BookmarkCategory.CategoryID = dbo.ViewBookmarkCountByCategory.CategoryID AND
dbo.BookmarkCategory.GroupID = dbo.ViewBookmarkCountByCategory.GroupID LEFT OUTER
JOIN
dbo.BookmarkGroupLabel ON
dbo.BookmarkCategory.GroupID = dbo.BookmarkGroupLabel.GroupID LEFT OUTER JOIN
dbo.BookmarkCategoryLabel ON
dbo.BookmarkCategory.CategoryID = dbo.BookmarkCategoryLabel.CategoryID