運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。
リレーショナルデータベースで履歴の管理は難しい。 いまDB設計を担当している案件で、業務用件として履歴管理が現れた。 「データの更新の度に更新前後のデータを保持し、過去のある時点のデータを再現したい」という。 どう実装するか。。 追加のみ行うよう設計する はじめに考えたのはテーブルAにはレコードの追加のみ行う、という方法。 しかし…下記の理由により断念。 テーブルAのオカレンスは頻繁に更新され、レコード数が大変なことになる。オンライン処理の為、厳しい。 また、今回はテーブルAだけでなく、テーブルAとリレーションを持つ他の幾つかのテーブルの履歴も持たなければならない。つまり、テーブルAを更新する為に他の複数のテーブルにINSERTを行わなければならなくなってしまう。これをアプリケーション実装者に強いるのはリスク。 本体と履歴の情報を分ける テーブルAとは別にテーブルA履歴を用意する方法。履歴
データベースの「正規化」を学んで間もない頃に実際のデータベース設計をやってみて、悩んだことをお話をしたいと思います。 理想と現実の壁にぶち当たる 下記の属性を持つ「売上ファイル」を考えてみます。 売上ファイル ---------------- 売上日 顧客名 住所 担当者名 商品名 単価 数量これを第3正規形にすると、こんな感じになります。 売上テーブル ---------------- 売上コード 売上日 顧客コード 売上明細テーブル ---------------- 売上コード 商品コード 数量 顧客マスタ ---------- 顧客コード 顧客名 住所 担当者名 商品マスタ ---------- 商品コード 商品名 単価ところが、このままでは商品マスタの単価が変更されると、売上金額が変わってしまいます。そこで、売上明細テーブルにも「単価」列を追加し、売上日時点の単価を設定するようにし
人事管理のデータベースを作成しています。異動履歴の最新レコードの表示でつまずいています。どなたかご教授をお願いいたします。 人事管理のデータベースを作成しています。異動履歴の最新レコードの表示でつまずいています。どなたかご教授をお願いいたします。 テーブルは3つ作成しています(カラムの数は実際のものより省略、便宜上日本語にしています)。 社員テーブル カラム(id、社員コード、名前、メールアドレス) 異動履歴テーブル カラム(id、異動社員コード、異動日、異動先部署番号) 部署テーブル カラム(id、部署番号、部署名) 社員の社員コードと異動履歴の異動社員コード、異動履歴の異動先部署番号と部署テーブルの部署番号が それぞれリレーションキーとなっています。 社員の一覧を表示しようとしたのですが、 SELECT * FROM `社員`,`異動履歴`,`部署` WHERE 社員.社員コード =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く