
現在SQLServerを使用した、Webアプリケーションの製作を行なっています。
そのデータベース内で、親子関係があるテーブルを使用しており、親テーブルの主キーIDを、子テーブルの外部キーに設定しています。
親テーブルの主キーIDはidentityを使用して連番にしています。
親子関係があるテーブルは、親が登録されると、すぐに子のテーブルにもデータを追加するという形で、親テーブルが追加された直後に親テーブルの主キーIDをMAX関数を使用して取得し、子テーブルに登録しております。
このやり方ですと、通常は問題は無いのですが、同時に連続してアクセスがある時に、親テーブルの主キーIDを取得する際に、ずれが生じたりして正確な親子関係にならない場合があります。
この手法は一般的な手法ではないのでしょうか?また、何かいい対処法はございませんでしょうか?
お力をお貸しください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
No.1
- 回答日時:
あまりたいしたコメントは出来ませんが参考程度に。
理解済とは思いますが、ms-06fsさんの手法ですとデータの整合性が保証できません。
親テーブルに登録したときのID=子テーブルに登録したときのIDが100%保証できないからです。
同時アクセスの可能性があるアプリケーションでは親テーブルに登録する際の主キーIDをアプリ側でコントロールしたほうがいいかと思います。
(1)親テーブルに登録する前にMAX関数にて親テーブルの最後のIDを取得。
(2)それをアプリ内でコントロールし、親テーブルに登録&子テーブルに登録。
こんな感じでいかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「テーブルに座って……」という...
-
外部キーだけのテーブル(主キ...
-
複雑なSQL文について
-
下記、問題に対しての解答が以...
-
まるいテーブル 円い 丸い 漢字...
-
論理名とコメント構文(?)について
-
アクセスのリンクテーブル一覧...
-
ピグライフ、パーティーテーブ...
-
サブクエリでのアップデート(My...
-
くら寿司のテーブルにあるアレ
-
取数計算
-
男性と2人で飲食店に行きテーブ...
-
SQL Server management studio ...
-
Accessデータベースウインドウ...
-
一つ前に戻るには…
-
SQL、2つのテーブルで条件一致...
-
update文で改行を入れる
-
C#で電卓のプログラムを組んで...
-
sqlplusで表示が変なので、出力...
-
重複クエリを使ったデータ削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「テーブルに座って……」という...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
テーブルリンク リンク元を知...
-
オーダーの覚え方について
-
下記、問題に対しての解答が以...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
【エクセル】データテーブルの...
-
L2SWはARPテーブルを持っている?
-
面接のときテーブルが正面に。...
-
男性と2人で飲食店に行きテーブ...
-
UTF8のテーブルをODBCドライバ...
-
お金持ちのテーブル
-
1つのテーブルに同じデータを参...
-
テーブル名の前のドットの意味
-
複雑なSQL文について
-
データベースの接続に失敗して...
-
【PHP】SQL文のSUM関数で出力し...
-
更新されたテーブルを表示したい
おすすめ情報