問題タブ [constraints]
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 2005 で、整数の列を設定して値が 0 より大きいことを確認するにはどうすればよいですか?
これはおそらく簡単な答えですが、見つかりません。整数の列を持つテーブルがあり、行が挿入されたときに、この列の値がゼロより大きいことを確認したいと考えています。コード側でこれを行うこともできましたが、テーブルで強制するのが最善だと考えました。
ありがとう!
前回のコメントに誤りがありましたが、今はすべて問題ありません。
database - Oracle 10gr2 チェック制約の何が問題になっていますか? 日付範囲を適用しようとしています
列 BIRTH_DATE のすべての日付が明日より前で、100 年以上前になるように、日付範囲に CHECK 制約を適用したいと考えています。CHECK 制約で次の式を試しました。
しかし、「ORA-02436: CHECK 制約で日付またはシステム変数が間違って指定されました」というエラーを受け取りました。
トリガーの代わりに CHECK 制約を使用してこれを達成する方法はありますか?
c# - c#で属性を要求するために「where」を使用できますか?
シリアル化可能なクラスのみを受け入れるジェネリック クラスを作成したいのですが、where 制約を使用して実行できますか?
私が探しているコンセプトはこれです:
sql-server - SQL Server で UNIQUE インデックスを "インデックス" または "制約" として作成することの違いは何ですか?
UNIQUE になる列 (ただし、テーブルの主キーではない) にインデックスを作成する場合、SQL サーバーではいくつかのオプションを選択できます。
1) 制約またはインデックスを選択できます。
これは、制約として設定すると、クエリ時に使用されず、書き込み時にのみ使用されることを意味すると推測しています。ただし、SQL Server がその制約を強制するための唯一の効率的な方法は、実際にインデックスを作成することです。このオプションの用途は何ですか?
2) また、「インデックス」として設定すると、重複キーを無視するように指定できます。これは私にとって最も不可解です...これは、
制約の反対を意味していると思います。おそらく、「クエリ時には使用するが、書き込み時にはチェックしないでください」という意味です。
しかし、なぜ UNIQUE として設定するのでしょうか?
SQL Server が実行できる最適化がいくつかあると思いますが、それをよりよく理解したいと思います。
SQL Serverがこれらのオプションで何をするのか正確に知っている人はいますか?
インデックスを一意に設定し、重複キーを無視するユースケースは何ですか?
注: これは SQL Server 2000 用です。
編集:しかし、あなたが言ったことによると...制約を作成すると、制約のフィールドを使用してフィルタリングするクエリを高速化するために使用されますか?
ありがとう!
sql - 奇妙な多対多および1対多の関係
票を落とすつもりですが、これが論理的かどうかを確認する必要があります。
私は3つのテーブルA、B、Cを持っています。BはAとCの間に多多の関係を作るために使用されるテーブルです。しかし、AとCも1対多の関係で直接関係しているということです。
顧客は次の要件を追加しました。
AとCとの内部結合の表Bから情報を取得し、同じクエリでAとCを1対多の関係で関連付けます
何かのようなもの:
代替テキストhttp://img247.imageshack.us/img247/7371/74492374sa4.png
クエリを実行しようとしましたが、常に0行が返されました。お客様は私が要件を達成できると主張していますが、私はそれを疑っています。コメントはありますか?
PS。もっとわかりやすいタイトルはありませんでしたが、何かアイデアはありますか?
更新:rcarのおかげで、場合によっては、学生が受講したすべてのクラスの履歴を保持するために、これが論理的である可能性があります(学生が一度に1つのクラスしか受講できないと仮定します)
更新:連絡先のテーブル、各連絡先の情報を含むテーブル、および関係テーブルがあります。連絡先の情報を取得するには、情報と1対1の関係を築く必要があります。各連絡先には、いいねと名簿を付けることができます。これが、多対多の関係が実装されている理由です。
完全なアイデアは、連絡先の名前と彼の名簿を取得することです。お客様のアイデアが浮かんだので...クエリに問題があります。基本的にはjdecuyperが作成したクエリを使用しようとしていますが、彼が警告しているように、データが返されません。
mysql - 2 つのフィールドに「両面」一意のインデックスを作成する方法は?
次のようなテーブルの 2 つのフィールドに一意のインデックスを効率的に作成するにはどうすればよいですか? create table t (a integer, b integer);
ここで、2 つの異なる数値の一意の組み合わせは、表の同じ行に複数回出現することはできません。
つまり、a=1 かつ b=2 であるような行が存在する場合、a=2 で b=1、または a=1 で b=2 である別の行は存在できません。言い換えれば、2 つの数字はどのような順序でも 2 回以上一緒に現れることはありません。
そのような制約が何と呼ばれているのかわからないため、タイトルに「両面一意インデックス」という名前が付けられています。
更新:列 (a、b) に複合キーがあり、行 (1,2) がデータベースに存在する場合、別の行 (2,1) をエラーなしで挿入できます。私が探しているのは、同じ数字のペアが任意の順序で複数回使用されるのを防ぐ方法です...
c# - 派生クラスの一般的な制約
私はクラスAを持っています:
クラス B は A から派生します。
クラス C はクラス B から派生します。
これで、制約付きのジェネリック メソッドができました
OK、今私は電話したい:
しかし、次のようなコンパイル エラーが表示されます。
Type argument 'ClassC' does not inherit from or implement the constraint type 'ClassA<ClassC>.
それでも、コンパイラは次のことを許可します。
私の理解では、代わりにClassC
継承するため、これは失敗しますClassA<ClassB>
ClassA<ClassC>
ClassB
私の本当の質問は、ジェネリックメソッドで何らかの方法で使用できる派生クラスを作成することは可能ですか?
これは、ジェネリックが過剰に使用されているように見えるかもしれませんが、私は同意します. サブソニック データ オブジェクトから派生したビジネス レイヤー オブジェクトを別のプロジェクトで作成しようとしています。
注: < T > に余分なスペースを入れました。そうしないと、質問から削除されます。
java - SQL 削除カスケーディング ヘルプ (特定の質問)
HSQLデータベースに多対多の関係を持つ2つのテーブル(説明のために名前を変更/リファクタリング)があります。多対多の関係の片側から削除するときにすべてを消去したい (テーブルをクエリせずに、これはパフォーマンスが重要です)
ここに私の主なテーブルがあります:
ここに私の結合テーブルがあります:
ここに私の制約があります:
私は基本的にこれをやりたいです:「person_id = 0の人から削除」し、JOBエンティティが孤立する場合はPERSON、JOB_PERSON、およびJOBからすべてを削除します(多対多テーブルで参照されなくなります)
データベースにクエリを実行せずにこれは可能ですか? 削除すると、PERSON と JOB_PERSON からのみ削除されます。おそらくおわかりのように、私の SQL スキルは不足しています。
これが私が遊んでいるダミーデータです:
したがって、これらのステートメントの両方を入力すると、次のようになります。
3 つのテーブルすべてをすべて削除したいと考えています。可能?
validation - 制約と検証?
私は Windows Forms Databinding を使用して、 のようなインターフェイスを実装していますIDataErrorInfo
。これが機能するためには、ドメイン (またはビジネス) オブジェクトを無効な状態にすることが許可されています。実際、ドメイン オブジェクトは、IDataErrorInfo
正しく機能するために、ユーザーが入力した無効な値を保持する必要があります。オブジェクトが無効な状態で保持されない限り、問題ありません。
ただし、件名が示唆するように、制約と検証に違いがあるかどうか疑問に思っていました。前者は、ユーザーがまったく変更を加えることを防ぎます。後者は、上で説明したタイプの検証です。
説明させてください-コレクションがPerson
ありPerson
、SSN
プロパティがある場合。はPersonCollection
にキー設定されてSSN
います。つまり、コレクション内にPersons
同じが 2 つ存在することはありませんSSN
。で一時的な無効状態を許可すると、一時的ではありますが、コレクション内に2 つの重複Person
がある状況が発生します。これにより、別のオブジェクトが で動作し、複製された でオブジェクトを探し、2 つのオブジェクトを取得するという問題が発生する可能性があります。Persons
SSN
PersonCollection
Person
SSN
したがって、特定のタイプの検証は、(変更後の) 検証ではなく、制約である必要があるようです。
考え?
oracle - Oracle チェック制約
私はこのチェック制約に数時間苦労しており、誰かがこのチェック制約が私がすべきだと思うことをしていない理由を説明してくれることを望んでいました.
基本的に、障害所得を徴収するには障害者である必要があります。このチェック制約の最初の部分が(IS_DISABLED IS NULL AND DISABILITY_INCOME_TYPE_ID IS NULL)
適用されていないように見えます (以下を参照)。
に使用できる値DISABILITY_INCOME_TYPE_ID
は 1 と 2 で、外部キーによって強制されます。との両方IS_DISABLED
をDISABILITY_INCOME_TYPE_ID
null にすることができます。
助けてくれてありがとう、マイケル