問題タブ [primary-key-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
100 参照

database - PK 生成性能: DB 生成シーケンスまたはアプリ生成ランダム

データベースが PK として使用する ID/シーケンスの生成を管理する方がパフォーマンスが高いかどうか、またはランダムな 64 ビット番号としてアプリケーションに独自の ID を生成させる方がパフォーマンスが高いかどうかを理解しようとしています。

私の疑いでは、管理する並行性が少ないため、アプリケーション + ランダム生成の方がパフォーマンスが向上しますが、DB がシーケンスを生成すると、次に来るものが順序付けられていることを常に認識し、インデックスのメンテナンスを最適化できます。

0 投票する
1 に答える
26 参照

postgresql - 主キーの再起動

これが私の状況です:

週に 1 回切り捨てられるテーブルがあり、新しい値がそこに配置されます。

私がしたいこと:

1 から始まり、挿入されるテーブルの行ごとに 1 ずつ増加する主キーを追加したいと考えています。テーブルが切り捨てられたら、このカウントを 1 から開始するようにします。

これは可能ですか?

0 投票する
3 に答える
81 参照

database - SQL テーブルの主キーの選択

追加/編集/削除されたメモを追跡する SQL テーブルを作成したいと考えています。NOTEID現時点でのそれぞれの状態を表に表示し、選択したメモの変更のログを表示し、特定の でマークされたすべてのメモを削除できるようにしたいと考えていNOTEIDます。

このテーブルを作る自然な方法は何ですか? プライマリ ID を自動生成する必要がありますか、それとも ( NOTEID, TIMEMODIFIED) をプライマリ キーとして使用する必要がありますか? どのようなフールプルーフ保護を追加する必要がありますか?


「メモ履歴」ウィンドウにすべてのメモを表示できるようにしたいと考えています。したがって、作成された 3 日前のメモ、2 日前のメモ、および変更された今日のメモを保存する必要があります。

ただし、「メモ」テーブルには、各 NOTEID の最終状態が表示されます。あれは

0 投票する
1 に答える
41 参照

types - Cassandra で特定のビット長に使用する必要がある主キーの種類は何ですか?

どのような状況でどのタイプの主キーを使用する必要があるかを知りたいです。
状況:
1. 64 ビット キーが必要な場合、bigint が最適ですか? テキスト タイプを選択した場合、64 ビット以下のキーを配置した場合、パフォーマンスは同じになりますか?
2. 64 ビット以上 128 ビット未満 (80 ビットとします) の主キーが必要な場合、主キーに使用するデータ型はどれですか?

0 投票する
3 に答える
3319 参照

ms-access - 主キーの自動番号とテキスト文字列?

遭遇したばかりの問題に対する最善の解決策を見つけようとしています。理解せずに物事を行うのは嫌いなので、誰かが助けてくれることを願っています.

ホテル情報を格納するテーブルと、旅程を格納する別のテーブルを含む Access データベースがあります。Itineraries テーブルは、Hotels テーブルのホテルのリストから選択されます。

適切なリレーションシップを作成したいのですが、Itineraries テーブルの Hotels フィールドに接続する Hotels テーブルの Autonumber 主キーを使用してもうまくいきません。(Autonumber ID がホテル名と一致しないためです。)

次のほうがよいですか。

A. 文字列の長さがかなり長くなる場合でも、Hotels テーブルの主キーとしてホテル名を使用しますか?

B. Itineraries テーブルの Hotels フィールドの表示コントロールを、Hotels テーブルの自動採番の主キーをリストするコンボボックスに変更しますが、非表示にします。代わりに、ホテル名の列が表示されます。ここでその解決策を見つけました:http://www.trigonblue.com/accesslookup.htm

ソリューション A は長いテキスト文字列でインデックス作成を遅くする可能性があり、新しいフィールドがテーブルに挿入されるとソリューション B が台無しになると思うので、どちらのソリューションも完璧ではないようです。

ここで間違った答えを選んで、後で問題が発生するのは嫌です。

誰か助けてくれませんか?質問の一部を明確にする必要がある場合はお知らせください。

ありがとう!