タグ付けされた質問 「enum」

3
PostgreSQL(または一般的なSQL)にビジネスロジックのアクセス許可を実装する方法は?
アイテムのテーブルがあると仮定しましょう: CREATE TABLE items ( item serial PRIMARY KEY, ... ); 次に、各アイテムの「アクセス許可」の概念を紹介します(ここでは、データベースアクセス許可についてではなく、そのアイテムのビジネスロジック許可について説明していることに注意してください)。各アイテムにはデフォルトの許可があり、デフォルトの許可よりも優先されるユーザーごとの許可もあります。 私はこれを実装するいくつかの方法を考えて、次の解決策を考え出しましたが、どれが最良であり、なぜかについてはわかりません。 1)ブール解 各権限にブール列を使用します。 CREATE TABLE items ( item serial PRIMARY KEY, can_change_description boolean NOT NULL, can_change_price boolean NOT NULL, can_delete_item_from_store boolean NOT NULL, ... ); CREATE TABLE item_per_user_permissions ( item int NOT NULL REFERENCES items(item), user int NOT …
16 postgresql  enum 

3
CLRを使用せずにデータベースレベルの定数(列挙)を作成しますか?
要求の望ましい状態に基づいて代替アクションを実行する必要があるいくつかのSQLオブジェクトがあります。ストアドプロシージャ、テーブル値関数に渡し、クエリで使用できる(CLRを使用せずに)データベースレベルの定数(列挙)を作成する方法はありますか? CREATE PROCEDURE dbo.DoSomeWork(@param1 INTEGER, ..., @EnumValue myEnumType) AS ...; そしてそれを使います: EXEC doSomeWork 85, ..., (myEnumType.EnumValue1 + myEnumType.EnumValue2); myEnumTypeいくつかの列挙値を保持する場所。 手順では、必要な作業を実行するために、@EnumValue値を使用してテストすることができますmyEnumType。私がmyEnumType検討しているケースでは、ビットマスクの値を作成します。 簡単な例として、巨大なデータセットを受け取り、それをより小さくても非常に大きなデータセットに削減する高価なプロセスを考えてみます。このプロセスでは、そのプロセスの途中で、結果に影響を与える調整を行う必要があります。これは、削減内の中間計算のステータスに基づいて、特定のタイプのレコードをフィルターする(またはフィルターする)とします。@EnumValueタイプのはmyEnumType、このために、テストに使用することができ SELECT ... FROM ... WHERE (@EnumValue & myEnumType.EnumValue1 = myEnumType.EnumValue1 AND ...) OR (@EnumValue & myEnumType.EnumValue2 = myEnumType.EnumValue2 AND ...) OR ... CLRを使用せずに、SQL Serverでこのようなデータベースレベルの定数を使用できますか? ストアドプロシージャや関数などにパラメーターとして渡すことができるデータベースレベルの列挙または定数のセットを探しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.