問題タブ [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.

0 投票する
2 に答える
8408 参照

sql - 主キーは常にクラスター化されていますか?

これについての私の疑問を解消してください。SQL Server (2000 以降) では、主キーは自動的にクラスター インデックスになりますか、それとも主キーにクラスター化されていないインデックスを使用することを選択できますか?

0 投票する
6 に答える
16135 参照

sql - クラスター インデックス GUID 主キーのパフォーマンスの向上

多数の行 (10K+) を持つテーブルがあり、主キーは GUID です。主キーはクラスター化されています。このテーブルでは、クエリのパフォーマンスが非常に低くなります。効率化するための提案をお願いします。

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

nhibernate - Hibernate と文字列の主キー

文字列を主キーとして使用する従来のデータベースがあります。そのレガシー データベースの上にオブジェクトを実装して、いくつかのビジネス ロジックをより適切に実装し、より多くの機能をユーザーに提供したいと考えています。

テーブルの主キーに文字列を使用するのは悪いことだと読んだことがあります。なぜだろう?大文字と小文字の区別の問題のためですか?文字セット?

...これがNHibernateにとって特に悪いのはなぜですか?

...そしてそれをフォローアップ...文字列が悪い主キーになる場合、データベースの主キーをintやGUIDなどに置き換える価値はありますか? (関連するテーブルは約 25 ~ 30 しかありません)

0 投票する
10 に答える
15438 参照

database - Productsテーブルの人工主キーと自然キーのどちらを使用するかを決定する

基本的に、複数のベンダーの製品データを1つのデータベースに結合する必要があります(もちろん、それよりも複雑です)。このデータベースには、ほとんどのOLTP操作で結合する必要のあるいくつかのテーブルがあります。

私はデフォルトを維持し、主キーとして自動インクリメント整数を使用するつもりでしたが、あるベンダーが独自の「ProductiD」フィールドを提供しているのに対し、残りは提供しておらず、他のベンダーに多くの手動マッピングを行う必要があります次に、テーブルを使用してデータをロードします(最初にデータをProductsテーブルにロードしてから、IDを引き出して、必要な他の情報と一緒に他のテーブルに追加する必要があるため)。

または、製品のSKUを主キーとして使用することもできます。これは、SKUが単一の製品に固有であり、すべてのベンダーがデータフィードでSKUを提供しているためです。SKUをPKとして使用すると、すべてがSKUに基づいているため、データフィードを簡単に読み込むことができます。これは、現実の世界でどのように機能するかを示しています。ただし、SKUは英数字であり、整数ベースのキーよりも効率がわずかに低くなる可能性があります。

私が見なければならないアイデアはありますか?

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

database - モデルのデータベースを CakePHP でどのように移植可能にしますか?

私はケーキにあまり詳しくありません..だからここに私の質問があります..私たちはmysqlでアプリを開発していますが、最終的にはmssqlまたはoracleに展開する必要があるかもしれません. 主キーで奇妙な問題が発生しないようにするにはどうすればよいでしょうか? mysql では AUTO INCREMENT 列ですが、オラクルの IIRC ではシーケンスを使用する必要があります...これを透過的に変更する方法はありますか? 私はそれを考えすぎていますか?

Cakephp アプリでデータベース ベンダーを切り替えた経験のある人はいますか? 注意すべきポイントや注意事項はありますか?

0 投票する
4 に答える
4539 参照

ruby-on-rails - 複数のキー フィールドを持つリソースに対して、Rails で RESTful ルートを定義するにはどうすればよいですか?

私の User モデルには通常のid主キーがありますloginが、識別子として使用できる一意のものもあります。したがって、ユーザーが ID またはログインによってアクセスできるようにルートを定義したいと思います。理想的には、ルートは次のようになります。

これを行うための最良の方法は何ですか (または同様のもの)?

0 投票する
2 に答える
251 参照

mysql - MySQL の 1 つのテーブルごとにプライマリ / 自動追加の一意の ID を追加しますか?

MySQL で 1 つのテーブルごとに 2 つ以上のプライマリ/自動追加の一意の ID を持つことは可能ですか? 例えば:

主キー (INT,11);shop_id;invoice_id

これを MySQL テーブルに設定することは可能ですか? -> したがって、テーブル内の他の値の主キーが他にもあります..?

1 つのテーブルでより多くの自動インクリメントを探しています。

0 投票する
5 に答える
192 参照

mysql - MySQL で PK を複製する

少し前に、このサイトで、多対多 (私の場合は facebook っぽい「友達になる」システム) を使用する唯一の方法は、次のようなことをすることだと言われました。

これにより、多数の同一の主キーが残されることはありません (これは不可能だと思いますか?) また、uid を PK として設定できない場合、どうすればテーブルをすばやく検索できますか? PKでこれを回避する方法が必要です。

ありがとう!

0 投票する
4 に答える
1405 参照

sql - GUID を主キーとして使用する場合の「なし」または「未使用」の外部キー

多くのサーバーに複製する必要があるアプリケーションを構築しています (そうでないことを願っていますが、オンライン製品をリリースするまで、クライアントが独自のクライアント/サーバー コピーを必要とするかどうかを知る方法はありません)。

サーバーの数が不明であるため、すべてのトランザクション テーブル ID に GUID を使用することにしました。各クライアントには独自のデータベースがあるため、NEWSEQUENTIALID() のデフォルトを使用するつもりであり、最大のテーブルは年間 150 万行しか追加しません (平均で 15,000 行)。パフォーマンスの問題はあまりないと思います。 .

ただし、外部キーに「選択されていない」ことを示す必要がある場合の処理​​方法がわかりません。たとえば、クライアントには 1 人の管理者ユーザーがいます。これは、login.id (GUID) への外部キー (login_id) として設定されます。ただし、クライアントにまだ管理者ユーザーがいない場合、「None Selected」キーを簡単に設定するにはどうすればよいでしょうか?

以前のアプリケーションでは、IDENTITY 列を使用し、ほとんどのテーブルに ID 0 のダミー エントリを挿入していました。GUID で同様の機能を提供するための受け入れられたアプローチはありますか?

0 投票する
6 に答える
16442 参照

sql - 主キーでなくてもMySqlで自動インクリメントを使用できますか

他のすべてのテーブルの主キーとして GUID を使用していますが、増分番号が必要な要件があります。自動インクリメントを使用してテーブルにフィールドを作成しようとしましたが、MySql はそれが主キーである必要があると不平を言いました。

私のアプリケーションは ORM として MySql 5, nhibernate を使用しています。

私が考えた可能な解決策は次のとおりです。

  • 主キーを自動インクリメント フィールドに変更しますが、ID を GUID として保持しているため、アプリの残りの部分は一貫しています。

  • GUID と自動インクリメント フィールドの両方で複合キーを作成します。

現時点での私の考えは、複合キーのアイデアに傾いています。

編集: 行 ID (主キー) は現在 GUID です。人間が読めるように、自動インクリメントされる INT フィールドを追加したいと思います。GUIDを主キーとして持つアプリの現在の標準から離れたくありませんでした。