Skip to content

Latest commit

 

History

History
84 lines (70 loc) · 6.41 KB

TableList.md

File metadata and controls

84 lines (70 loc) · 6.41 KB

テーブル一覧

要件定義 / 基本設計 / 詳細設計
基本:共通仕様 / 機能一覧 / テーブル一覧 / 画面一覧 / 画面遷移
詳細:テーブル定義書 / 画面定義書 / イベント仕様書

Northwind 原典の 13 テーブルに、パフォーマンス分析要件のための 1 テーブル(SalesTargets)を加えた計 14 テーブルで構成する。

一覧

# 物理名 論理名 区分 主キー 主モジュール 定義書
1 Orders 受注 トランザクション OrderID 受注管理 Orders.md
2 Order Details 受注明細 トランザクション OrderID, ProductID 受注管理 Orders.md
3 Customers 顧客 マスタ CustomerID 顧客管理 Customers.md
4 CustomerDemographics 顧客区分 マスタ CustomerTypeID 顧客管理 Customers.md
5 CustomerCustomerDemo 顧客・顧客区分関連 関連 CustomerID, CustomerTypeID 顧客管理 Customers.md
6 Products 商品 マスタ ProductID 商品管理 Products.md
7 Categories カテゴリ マスタ CategoryID 商品管理 Products.md
8 Suppliers 仕入先 マスタ SupplierID 仕入先管理 Suppliers.md
9 Employees 社員 マスタ EmployeeID 担当者管理 Employees.md
10 Region 地域 マスタ RegionID 担当者管理 Employees.md
11 Territories テリトリー マスタ TerritoryID 担当者管理 Employees.md
12 EmployeeTerritories 社員・テリトリー関連 関連 EmployeeID, TerritoryID 担当者管理 Employees.md
13 Shippers 運送会社 マスタ ShipperID 配送管理 Shippers.md
14 SalesTargets 売上目標 トランザクション EmployeeID, TargetYear, TargetMonth パフォーマンス分析 Analysis.md

SalesTargets のみ本設計での追加テーブル。他の 13 テーブルは Northwind 原典の構造を保持する(追加は楽観排他用の RowVersion 列のみ)。

モジュールとテーブルの対応

「更新」はそのモジュールが登録・更新・削除を行うテーブル、「参照」は表示・検索のために読むテーブル。

モジュール 更新 参照
受注管理 Orders, Order Details, Products(出荷時の在庫数) Customers, Employees, Shippers, Products
顧客管理 Customers, CustomerCustomerDemo CustomerDemographics, Orders, Order Details
商品管理 Products, Categories Suppliers, Order Details
仕入先管理 Suppliers Products, Categories
担当者管理 Employees, EmployeeTerritories Territories, Region, Orders, Order Details
配送管理 Shippers Orders, Order Details
売上分析 - Orders, Order Details, Products, Categories, Customers
在庫分析 - Products, Categories, Order Details, Orders, Suppliers
パフォーマンス分析 SalesTargets Employees, Orders, Order Details, EmployeeTerritories, Territories, Region

ER 概要

erDiagram
    Customers ||--o{ Orders : "受注する"
    Employees ||--o{ Orders : "担当する"
    Shippers  ||--o{ Orders : "配送する"
    Orders    ||--|{ "Order Details" : "明細を持つ"
    Products  ||--o{ "Order Details" : "明細に現れる"
    Categories ||--o{ Products : "分類する"
    Suppliers ||--o{ Products : "供給する"
    Employees ||--o{ Employees : "上司部下"
    Employees ||--o{ EmployeeTerritories : "担当する"
    Territories ||--o{ EmployeeTerritories : "割り当てられる"
    Region    ||--o{ Territories : "含む"
    Customers ||--o{ CustomerCustomerDemo : "区分を持つ"
    CustomerDemographics ||--o{ CustomerCustomerDemo : "区分される"
    Employees ||--o{ SalesTargets : "目標を持つ"
Loading

削除時の参照制約

外部キー制約は DB に定義しない(DB に持たせない制約)。 下表の判定はアプリケーションが削除の前に実施し、該当する場合は ERR-FK(共通仕様 7 節)とする。 DB は削除を拒否しないため、この確認を省略すると不整合なデータが残る。

削除対象 削除できない条件
Customers 当該顧客の Orders が存在する
Employees 当該社員の Orders が存在する、または ReportsTo に当該社員を指す Employees が存在する
Shippers ShipVia に当該運送会社を指す Orders が存在する
Products 当該商品の Order Details が存在する
Categories 当該カテゴリの Products が存在する
Suppliers 当該仕入先の Products が存在する
Orders なし(明細を先に削除したうえで削除する)

CustomerCustomerDemo と EmployeeTerritories は関連テーブルであり、親の削除時にあわせて削除する。 SalesTargets も社員の削除時にあわせて削除する。 CASCADE は使わないため、これらの削除はアプリケーションが同一トランザクション内で順に実行する。