絞り込み条件を変更する
検索条件を絞り込む

すべてのブログから「#データベース設計」タグの検索結果

2 件中 1 - 2 件表示
カバー画像

Access学習メモ 1-3. Excelデータ取込,リレーション

MicrosoftAccessを用いたデータベース作りの学習記録です Access標準機能にてExcelデータをAccessテーブルへインポートできる。ただ、例題のようなカッコつけたフィールド名はエラーが起きやすくその場合はExcelから直接、データをコピペすることも可能と教わった。※貼付には若干コツが必要データインポートにてすべてのテーブルにデータを格納させたあと、リレーションシップおよび参照整合性を設定。※先にリレーションさせてしまうと、テーブルの内容に修正が必要となった際にあわわってなるので、テーブルを完璧に仕上げるまではやらなくていい。テーブル寸法(フィールドサイズ)の相違など、リレーションさせたいもの同士に何かしら矛盾があると、ここで発覚する。クエリ設計に入る前には済ませておくとたぶんスムーズ。(実務ではフィールド連鎖更新までさせておいた方が手間が少ない。)
0
カバー画像

二重予約が起きるDB設計、起きないDB設計の違い

予約や在庫を扱うシステムで、いちばん怖い不具合があります。同じ枠に2件入ってしまうことです。画面では1件しか受け付けていないように見えるのに、データベースを開くと2件入っている。返金と謝罪が発生して、原因を追っても再現しない。この種の不具合は、コードの書き方ではなく設計で決まっています。私は有料通話サービスを個人で開発していて、予約と決済を実装しました。その過程で踏んだところを書きます。「空きを確認してから入れる」は失敗するいちばん自然に見える書き方が、これです。1. その枠が空いているか確認する2. 空いていたら予約を入れるこれで動いてしまうので、テストでも気づきません。問題は、1と2のあいだです。利用者が2人同時に申し込むと、両方が「空いている」を見てから、両方が予約を入れます。あいだが0.1秒でも起きます。アクセスが増えるほど確率が上がるので、サービスが成長してから初めて出るのがたちの悪いところです。直し方は2つあるひとつは、データベースに「同じ枠は1件まで」を宣言してしまう方法です。枠を一意キーにしておくと、2件目を入れようとした時点でデータベース側が拒否します。アプリ側で頑張らなくてよくなるのが利点で、実装を書き換えても効き続けます。もうひとつは、予約を入れる処理を1件ずつ順番に通す方法です。私のサービスでは、予約の確定処理をこの形にしています。同時に来ても、片方が終わるまでもう片方を待たせます。空き枠の計算が複雑で、一意キーだけでは表現しきれない場合はこちらになります。どちらを選ぶかは、枠の決まり方によります。時間帯が固定なら前者で足ります。「前後30分は詰められな
0
2 件中 1 - 2