end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

IT資産(ハードウェアやソフトウェア)を管理するDB table構成を考える

↓こんな感じでOKかと思います

CREATE DATABASE it_assets CHARACTER SET utf8;
grant all privileges on it_assets.* to ないしょ@'%' identified by 'ないしょ';


CREATE TABLE data_center_doc (
id                      int AUTO_INCREMENT,
name                    varchar(100) not null unique comment 'DC文書名 or サービス名',
data_center_doc_url     varchar(200)    comment 'DC文書の保管先url',
note                    varchar(300)    comment '概要',
dc_usage_price          int             comment 'DC利用料 円/月',
primary key(id)
)
COMMENT='データセンタA文書の単位で記載';


CREATE TABLE service (
dc_doc_id               int not null    comment 'tbl:data_center_docのid',
id                      int AUTO_INCREMENT,
name                    varchar(100) not null unique comment 'サービス名',
note                    varchar(300)    comment '概要',
monitor_sys_url         varchar(200)    comment '例:xymon画面のurl',
service_start_date      date            comment 'サービス開始日',
sla_price               int             comment '運用費 円/月',
sla_start_date          date            comment '運用契約 開始日',
sla_doc                 varchar(200)    comment '運用契約書の保管先url',
owner_dept              varchar(50)     comment 'オーナ部署',
owner_man               varchar(50)     comment 'オーナ部署 責任者、担当者',
our_sales_dept          varchar(50)     comment '自社 営業 部署',
our_sales_man           varchar(50)     comment '自社 営業 責任者、担当者',
our_dev_dept            varchar(50)     comment '自社 開発 部署',
our_dev_man             varchar(50)     comment '自社 開発 責任者、担当者',
our_ops_dept            varchar(50)     comment '自社 運用 部署',
our_ops_man             varchar(50)     comment '自社 運用 責任者、担当者',
primary key(id),
FOREIGN KEY(dc_doc_id) REFERENCES data_center_doc(id)
)
COMMENT='運用契約の単位で記載';


CREATE TABLE service_option (
dc_doc_id               int not null    comment 'tbl:data_center_docのid',
id                      int AUTO_INCREMENT,
type                    varchar(10)     comment 'ssl, dns, other',
name                    varchar(100) not null comment '名称',
note                    varchar(300)    comment '概要',
running_price           int             comment 'ランニング費 円/月',
vender                  varchar(50)     comment 'ベンダー',
start_date              date            comment '開始日',
nend_date               date            comment '終了日',
primary key(id),
FOREIGN KEY(dc_doc_id) REFERENCES data_center_doc(id)
)
COMMENT='dnsやssl証明書 等. dnsやsslの有効期限はscriptで自動checkしたい';


CREATE TABLE hardware (
dc_doc_id               int not null    comment 'tbl:data_center_docのid',
id                      int AUTO_INCREMENT,
maker                   varchar(50),
model                   varchar(80)     comment '型番',
quantity                int default 1   comment '数量. 冗長化の場合、2以上',
note                    varchar(300)    comment '概要',
support_vender          varchar(50)     comment '保守業者',
support_start_date      date            comment '保守 開始日',
support_end_date        date            comment '保守 終了日',
extra_support_end_date  date            comment '特別 終了日',
support_end_note        varchar(300)    comment 'EOLのアナウンス有無等',
primary key(id),
FOREIGN KEY(dc_doc_id) REFERENCES data_center_doc(id)
)
COMMENT='サーバやロードバランサ、外付けドライブ 等';


CREATE TABLE software (
hw_id                   int not null    comment 'tbl:hardwareのid',
id                      int AUTO_INCREMENT,
maker                   varchar(50),
model                   varchar(80)     comment '型番',
quantity                int default 1   comment 'ライセンス数',
note                    varchar(300)    comment '概要',
support_vender          varchar(50)     comment '保守業者',
support_start_date      date            comment '保守 開始日',
support_end_date        date            comment '保守 終了日',
extra_support_end_date  date            comment '特別 終了日',
support_end_note        varchar(300)    comment 'EOLのアナウンス有無等',
primary key(id),
FOREIGN KEY(hw_id) REFERENCES hardware(id)
)
COMMENT='OSやミドルウェア 等. 各swのversionはxymon経由で自動収集したい';