0

ローン管理アプリケーションを開発しています。Loan という名前のテーブル/エンティティがあり、それらをすべて保存します。私が必要としているのは、請求されたローンを autoinc (1、2、3、4、5、6 など) で保存し、別の autoinc シーケンスを使用して、請求されていないすべてのローンを保存することです (例: 20000、20001、20002、等)。アイデアは、両方のローンを同じテーブルに入れることですが、異なる ID を使用すると、状態に基づいて、請求済みまたは未請求のローンが表示されます。アプリケーションはすでに最終段階にあるため、2 つの異なるテーブルを使用してそれぞれを保存することはできません。解決策を見つけて、これが可能かどうかを確認するためのアドバイスが必要です。ところで、C# で Entity Framework 4 を使用しています。

簡単に言うと、テーブルの 1 つのフィールドに対して 2 つの autoinc シーケンスを作成する必要があります。2 番目の autoinc 番号は、最初の番号に到達しないように大きな番号で開始する必要があります。

誰かが私を助けてくれることを願っています..

編集: 皆さん、この問題について詳しく説明したいと思います。なぜなら、あなたがこれを行う意味を理解しているかどうかわからないからです。請求されていないローンのアイデアは、ユーザーが税金を支払うことなく「違法に」ローンを提供できるようにすることです。だからこそ差別化しなければならない。1 つの ID シーケンス番号を使用することはできません。なぜなら、一部の検査官が ID 番号を見ると、「わかりました。ここにはローン 1、2、3、7、8 がありますが、4、5、6 はどこですか?」と言うからです。2 つのシーケンスをもう 1 つのシーケンスよりもはるかに高く、最初のシーケンスでは到達できないほど高くするというアイデアは、それを実現することでした。同じシーケンスを使用しますが、請求されたかどうかを区別する別のフィールドを持つことは可能な解決策になる可能性がありますが、私は多くのユーザーを抱えているため、SQL がローンの ID を自動的に設定する方法が気に入りました。

4

1 に答える 1

0

Greg が述べたように、まず、テーブルの自動インクリメントをオフにする必要があります。次に、データ アクセス レイヤーから呼び出すストアド プロシージャを作成します。これにより、正しい Id が計算され、テーブルに 2 つのレコードが作成されます。このようにして、データ アクセス レイヤーとビジネス ロジックは、db レベルのタスクに依存しなくなります。

また、Greg が再度指摘したように、アプリケーションの数が 20K のマークに達したときに状況を処理するための戦略を用意してください。

よろしければ、主キー/候補キーに基づいて状態を作成するアプローチを選択した理由を教えてください。ローンが請求されているかどうかを示すためだけに列を維持してみませんか? EF を使用しているため、このアプローチを採用する場合、Table per Hierarchy を使用して、識別子キーに基づいて 2 つのデータ セットを投影できるはずです ( http://www.c-sharpcorner.com/UploadFile/ff2f08/entity -framework-4-0-tph-part-2/および http://weblogs.asp.net/manavi/archive/2010/12/24/inheritance-mapping-strategies-with-entity-framework-code-first- ctp5-part-1-table-per-hierarchy-tph.aspx )

または..ローンが請求されているかどうかを判断するために、可能な場合は請求テーブルにクエリを実行してみませんか (サブクエリまたは結合)。

乾杯

于 2013-01-31T07:51:23.223 に答える