問題タブ [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.
database - 列が 2 つしかないテーブルで主キーを使用する必要があります。どちらも一意です
次のようなテーブルがある場合
CustomerAddress(CustomerId, AddressId)
int 自動インクリメントなど、追加の主キーが必要ですか? または、両方の列を主キーとして設定するだけで十分でしょうか?
前提: 削除するときは、customerId だけで削除し、customerId と AddressId の両方で削除することはありません
php - MySQL で一意の参照を主キーとして使用する
一般的な質問がありました。
次のようなページが生成される URL が非常に気に入っています。
www.example.com/order/1e4fk678
1e4fk678 は、出力を生成する php ファイルにポストされる変数です。
私の質問は次のとおりです。データベース テーブルを作成する最良の方法は何でしょうか。主キーの自動挿入を持つ ID は、1、2、3、... のような ID を生成するだけです。
では、高速なデータベース追跡/トレースをもたらす一意の ID を使用する最良の方法は何ですか?
ありがとう
duplicates - 重複およびリージョン サーバーのホットスポットに関する HBase テーブル キーの設計
userIdで識別されるユーザーによって生成されたイベントを保存する必要があります。各ユーザーは、companyIdで識別される会社に属しています。次のように、HBase のテーブルのデザインを考え出しました。
rowkey : < companyId >< userId ><タイムスタンプ>
column-family : info (以下に示すイベント属性のセットをカプセル化)
列: <属性1 >、<属性2 >....<属性>
このキーの設計により、部分的なキー スキャンを使用して、 companyIdやuserIdで後でデータのクエリを実行しやすくなることがわかっています。そうは言っても、いくつかの質問と懸念があり、いくつかのアイデアを得たいと思っていました。
1- 時間範囲を指定してすべてのデータを読み取る読み取りユース ケースがある場合、この現在の設計では、rowKey を使用できません。代わりに、フル スキャンを実行し、タイムスタンプ フィールドの行をフィルター処理する必要があります ( attr列の 1 つとして個別に保持されます)。
2-重複を処理する方法は? その場合、HBase が行の新しいバージョンを作成することはわかっていますが、1 で述べた読み取りユースケースに従って、後で読み取ることができますか? クエリを実行するときにバージョンを制御できることはわかっていますが、それは良い設計になるのでしょうか、それともネイティブ機能を誤ってオーバーロードするのでしょうか?
3- これは地域サーバーのホットスポットに関するものです。モノリシック キーはありませんが、特定の企業またはユーザーが非常にアクティブである場合、この問題に遭遇する可能性があります。この場合、サーバーの数に基づくハッシュとバケット化は機能しませんか? タイムスタンプ フィールドをハッシュして、それを元の値ではなく、rowKey に追加するとしたらどうでしょうか。しかし、問題は、キーのタイムスタンプ コンポーネントをスキャンできないことです。それをキャプチャするには、列に別の列 (attr) が必要です。助言がありますか?
提供できる情報 (コメント、リンク、本、アイデア) に感謝します。
sql - 列の内容を変更せずに ID に +1 を増やす
ランダムな内容のこのランダム テーブルがあります。
ID | 名前| ミッション
1 | あああ | キター
2 | bbbb | エトレ
3 | cccc| qwqw
4 | dddd | 第5四半期
| ええええ | ポテンシャル
6 | ふふふふ | とと
私が望むのは、上記のテーブルに id=3 の列を別の名前と別のミッションで追加することですが、OLD id = 3 id = 4 に名前と以前の id のミッションが必要です=3、OLD id =4 は id=5 になり、id 5 の名前とミッションなどになります。
そのように、列の内側に列を入力したいのですが、その下の列にIDを+1増やしたいのですが、列は同じままです。以下の例:
ID | 名前| ミッション
1 | あああ | キター
2 | bbbb | エトレ
3 | zzzzzz| zzzzz
4 | cccc| qwqw
5 | dddd | 第6四半期
| ええええ | ポテンシャル
7 | ふふふふ | とと
なぜ私はこれをしたいのですか?2 つの CLOB を持つテーブルがあります。これらの CLOB の内部には、さまざまなクエリがあります。例: id =1 には、テーブルの作成の clob があります id=2 は、列に挿入します id=3 には、別のテーブルの作成があり
ます(またはクロブ)作成してから挿入してから関数を作成する必要があります。そのテーブルは巨大なスクリプトのようなものです。
なぜ私はこれをしているのですか?開発者はアプリケーションを構築しており、SQL が特定の順序で機能することを望んでいます。私には 6 人の開発者がいて、データ モデリングとパフォーマンス、およびスクリプトの実行方法を整理しています。したがって、上記の表は、スクリプトの呼び出しを整理するものです彼らは弱っている
database - 主キーと複合キー
主キーが複合キーであるテーブルがある場合、複合キーの代わりに常に新しい列を主キーとして作成しますか?それとも DB 分析に依存しますか?
どの方法が最適ですか?なぜ?