今現在開発を進めているデータベースでは、
テーブルが異なっていても同一列名の場合、型・サイズ・和名を揃えるようにしています。
ただ、他のプロジェクトでは同様のことを行っているところはなく、
ネットで調べた場合でも、そこまで厳密に定義した方が良いと書いているページは見つけられませんでした。
次期プロジェクトでも同様の方針でデータベース設計を行うつもりでしたが、
こういった設計は実は推奨されていない等はあるのでしょうか?
###実際に開発した際のメリット/デメリット
メリット
・DBから全テーブルの列定義を取得し、画面の入力(maxLengthや名称)等に反映出来る。
・上記理由から、桁数変更程度ならDBの列修正のみで対応できる。
デメリット
・同名の定義を行いたいが、和名だけ別なものにする場合に、それに見合う英名を探しに行く必要がある。
・後の保守要員に周知徹底出来るか疑問。
・サイズや型が異なる同名の列定義をした場合、同名の別画面部品に対して入力を行って初めて発覚する。
###例
create table Customer { id NUMBER(10) NOT NULL, -- id name VARCHAR2(30) , -- 名前 remark VARCHAR2(1000) , -- 備考 } create table Producer { id NUMBER(10) NOT NULL, -- id name VARCHAR2(30) , -- 名前 remark VARCHAR2(1000) , -- 備考 }
仮に上記のテーブルのコメントそれぞれ変更したい場合は、以下のように定義しています。
create table Customer { id NUMBER(10) NOT NULL, -- id customer_name VARCHAR2(30) , -- 顧客名 remark VARCHAR2(1000) , -- 備考 } create table Producer { id NUMBER(10) NOT NULL, -- id producer_name VARCHAR2(30) , -- 生産者名 remark VARCHAR2(1000) , -- 備考 }
また、列の定義を変更する場合は、以下のように定義しています。
create table Customer { id NUMBER(10) NOT NULL, -- id customer_name VARCHAR2(30) , -- 顧客名 remark VARCHAR2(1000) , -- 備考 } create table Producer { id NUMBER(10) NOT NULL, -- id producer_name VARCHAR2(30) , -- 生産者名 producer_remark VARCHAR2(500) , -- 備考(生産者) }
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/13 06:56