1 |
yii/yii2/laravelによる表アプリの作成 |
はじめに
ハードウェアの設計と並行してソフトウェアを設計します。まずは、PHPフレームワークであるyii/yii2と、laravelを取り上げます。これら3者を用いて同じテーマでアプリケーションを設計します。
対象となるアプリケーションは、弊社社内で使用している「資料一覧表」の作成とします。一覧表の作成は非常に汎用的であり、資料に限らず10以上のモノを管理しようとすると、一覧表は不可欠です。
データベース設計
docsとcategoryの2つの表で管理します。docsとその例を表542.1で示します。
id | 題名(title) | ページ数(pages) | 保存場所(link) | 分類(category_id) |
---|---|---|---|---|
1 | ISO 26262 第1版 Part 1 | 29 | ー | 1 |
2 | ISO 26262 第1版 Part 2 | 35 | ー | 1 |
3 | 平成26年度電子部品信頼性調査研究委員会報告 (FIDESの解説) | 125 | ー | 2 |
4 | 平成27年度電子部品信頼性調査研究委員会報告-改 (IEC/TR 62380, FIDES) | 192 | ー | 2 |
5 | Bluespec SystemVerilogリファレンスガイド | 453 | ー | 3 |
6 | BSVユーザガイド | 142 | ー | 3 |
: | : | : | : | : |
次に分類(category)表とその例を表542.2で示します。
id | 分類(category) |
---|---|
1 | 車載機能安全規格 |
2 | 故障率データベース |
3 | 技術文書 |
: | : |
categoryをdocsの表に埋め込めば一枚の表にすることは可能ですが、このように表を分離し、categoryをユニークにすることにより、n対1の関係となるので、修正が容易となるメリットがあります。
(参考情報)https://johobase.com/dividing-multiple-tables-merit/
ここに示されるように、資料表のレコードが100万件有り、分類に修正が入ると100万レコードの修正になるのに対し、表が分離されていると1つのレコードの修正で済みます。
このcategory_idカラムのように他の表のインデクスとなっているカラムをフォーリンキーと呼び、これでリレーションが張られていることになります。この「関係性」の機能を持つデータベースをリレーショナルデータベースと呼びます。