問題タブ [primary-key]
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.
sql - 複合主キーを SQL Server でクラスター化する必要がありますか?
次の表の例を検討してください (SQL Server 2005 を想定):
個別の一意の ID 列ではなく、2 つの product_id 列を含む複合主キーを検討しています (一意の制約が必要なのは間違いありません)。問題は、パフォーマンスの観点から、その主キーをクラスター化する必要があるかどうかです。
外部キーの検索が高速になるように、各 ID 列にもインデックスを作成する必要がありますか? このテーブルは、書き込みよりも読み取りの方がはるかに多くヒットすると思います。
algorithm - 主キーはどうですか?
私のチームでの活発な議論の中で、ほとんどの人が主キーとして好むものを考えさせられました。次のグループがありました-
- 自動インクリメントが十分な主キーである Int/ BigInt 。
- 主キーを構成する列は少なくとも 3 つ必要です。
- Id、GUID、および人間が判読できる行識別子はすべて、異なる方法で処理する必要があります。
PK の最適なアプローチは何ですか? あなたの意見を正当化できれば素晴らしいことです。上記よりも良いアプローチはありますか?
編集: 適切にスケーリングされる行の人間が読める識別子を生成するための簡単なサンプル/アルゴリズムを持っている人はいますか?
sql - SQL スクリプトで生成された主キーを参照する
単一のスクリプトを使用してデータベースに一連のエントリを作成しようとしていますが、発生している問題は、作成した前のエントリの生成された主キーを参照する方法です。
たとえば、顧客を作成し、その顧客の注文を作成しようとした場合、顧客用に生成された主キーを取得するにはどうすればよいですか?
私はSQLServerを使用しています。
mysql - テーブルの代理キーをMySqlの自然キーで改造しますか?
自然キーを使用し、既存の行が多数あるテーブルを想定します。MySql を使用して代理キー列を改良し、一意の値を入力する最も簡単な方法は何でしょうか?
すなわち変換
に
新しい id 列に有効な id:s を入力します。
ありがとう/エリック
linq - Linq と主キーの取得
このコードは機能しますが、その理由がわかりません。DeferredLoadingEnabld = false を使用すると、主キーが返されないと予想されます。誰かが私が欠けているものを説明できますか?
オーダーサービス:
sql - SQL主キーとインデックス.
主キーとして設定されたデータベースに ID 行 (int) があるとします。ID を頻繁にクエリする場合、インデックスも作成する必要がありますか? または、主キーであるということは、すでにインデックスが作成されていることを意味しますか?
私が尋ねる理由は、MS SQL Server では、この ID にインデックスを作成できるためです。これは、前述のとおり、私の主キーです。
編集: 追加の質問 - 主キーに追加のインデックスを付けると害はありますか?
sql-server - SQL Server - PK データ型を変更する最良の方法は何ですか?
私は現在、約 20 の参照テーブルを含むデータベースを持っています。つまり、製品、資産、デポ、ユーザーなどです。この情報は中央データベースに保存され、外出中のエンジニアの PDA にダウンロードされます。データベース内のすべてのテーブルには、UniqueIdentifier (つまり、GUID) の PK があります。
2 年間の製品開発の後、これらの参照テーブルを編集することは決してなく、編集する必要もないことに気付きました。そのため、主キーとして UniqueIdentifiers を持つ必要はありません。
コレクションを Web サービス経由で PDA に送信する前にすべてのコレクションをシリアル化しているため、実際のシリアル化されたデータは GUID の長さのために巨大です。
とにかく、要点を言えば、テーブルのすべての PK を IDENTITY Ints に変更したいのです。これを行う簡単な方法はありますか?それとも、すべての FK を切断し、一時テーブルを作成してから、データを再マップするソフトウェアを作成する必要がありますか?
前もって感謝します。
sql - 自動インクリメント ID 値
ID が生成された HSQLDB データベースがあり、自動インクリメント値を常に 100,000 より大きくしたいと考えています。これは HSQLDB で可能ですか? これはどのデータベースでも可能ですか?
hibernate - 休止状態 ID ジェネレーター
hibernate 用のカスタム ID ジェネレーターを作成する方法についての優れたチュートリアルを知っている人はいますか?