問題タブ [data-integrity]
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.
oracle - 列bにOracleの列aと同じ値が含まれないようにする方法は?
a (一意) と b の 2 つの列を持つテーブルに、列 b が列 a の任意の値と等しいレコードが含まれないようにする良い方法は何ですか? これは、次のような修正表に使用されます。
同時アクティビティがないと仮定してトリガーとサブクエリを使用してどのように実行できるかがわかりますが、より宣言的なアプローチが望ましいでしょう。
これは、防止すべきものの例です。
理想的には、ソリューションは同時挿入と更新で機能します。
database - ライブデータ整合性テストとコード単体テストを整理するにはどうすればよいですか?
コードテストコード(「unittest」クラスを使用)を含むファイルがいくつかあります。
後で、データベースの整合性もテストするとよいと思いました。これを別のディレクトリツリーに配置します。(キーの形式が正しい、親ノードと子ノードが正しく指しているなど。編集:これはnosqlプロジェクトであり、データベースレベルのチェックに依存することはできません。参照整合性などがあります。)
整合性テストに同じunittestクラスを使用します。
さて、これを別にしておくのは本当に理にかなっているのだろうか。データの整合性をテストするために、データを処理するコードをテストするために使用するコードの一部を複製することがよくあります。
しかし、それは同じではありません。コードテストはテストデータベース(各テストの後に削除されます)を使用し、整合性テストはライブデータに接続して分析します。cronから呼び出して、ライブデータベースで何かが発生した場合にアラームを送信したい整合性テスト。
それをどのように処理しますか?そのような設定の基準はありますか?あなたの経験は何ですか?
私の傾向は、すべてを同じファイルに入れることです。その結果、コードテストも実稼働環境のcronによって実行されます。
編集:私を駆り立てるのは、プロジェクトをシンプルに保ち、1つのタスクまたはワークフローであまり多くのファイルに触れないようにすることです。すべてのテストを行わなくても、クラスファイル、サブクラス、関連クラス、いくつかのライブラリ(ヘルパー)ファイル、およびメインコードがすでにあります。テストでは1つのファイルが追加されます。これにより、コーディング中に注意を集中でき、ストレスが少なくなり、エラーが少なくなり、影響を受けるファイルが少ない特定のコード部分をすばやく覚えて見つけることができます。ここでは、ワークフローごとに1つのテストファイルのみが役立ちます。私がそれを別々に保つならば、2つのファイル(データ整合性テストとコードテスト)と多分3つ(両方のための共通のライブラリ)があります。抽象化は複雑さを増します。
Edit2:少しリファクタリングして、データテストファイルをコードテストも存在する同じディレクトリツリーに移動するだけですが、「整合性」または「テスト」を示す名前の異なるファイルを保持しています。2人が反対を勧めたので、私は(まだ)ファイルをマージしません、そして私は今のところ彼らの経験とアドバイスを信じています。今のところ、コードの重複を抱えています。
Edit3:この場合、実行ごとのテストの選択はツリー構造によって決定されないことを忘れました。テストはマスターファイルに列挙されているので、現在、「整合性」と「コードテスト」の2つのマスターファイルがあり、テストは同じディレクトリ構造で実行できます。
たぶんもっと多くの人が答えるでしょう。これまでのところ、最終的な構造の開発にすでに役立っている貴重な情報をありがとうございました。
Edit4:今はもっとリファクタリングをしました。2つのファイルを保持する必要があるようですが、目的が少し変更されています。1つは、実動サーバーでのスケジュールされたモニターを対象としています。そしてもう1つは開発用です。ただし、両方のファイルに整合性テストまたはコードテストを含めることができます。また、どちらのファイルでも、テストデータベース(テスト後に消去される)と永続データベース(それぞれに永続データベース、本番サーバー、開発サーバーがあります)で操作を実行できます。そして重要なことの1つは、多くの一般的なコードをテストファイルからクラスファイルに移動していることに気付くということです。したがって、クラスはテスト専用の能力も取得します。私はこれまでのところこれが好きで、きれいに感じます。私は(まだ)2つのテストフロントエンド間で共有されるテスト用のライブラリを作成していません。このコードは、今のところテストされているオブジェクトのクラスファイルに移動しました。
以下の私のコメントは「user89021」で署名されていますが、それは私、karlthorwaldであることに注意してください。私はそれについて何もできません。
ms-access - MS Access 2003: レコードからデータが消えることはありますか? また、これをテストして防止するにはどうすればよいですか?
問題とデータベースについて: Access 2003 データベースのレコードのデータが消えました。このデータベースには 1 つのバックエンドと 3 つのフロントエンド、複数のユーザーがあり、Citrix でホストされています。このデータベース内には、1,000 台に及ぶすべてのクライアントの記録があります。
背景情報: クライアント データ入力用のフォームは、「プログラム登録」サブフォームと「サービス」サブフォームの両方を含む、さまざまなサブフォームでセットアップされます。クライアントは複数のプログラムに登録できます。プログラムに登録すると、サービス サブフォームを使用してそのプログラム領域のサービスを入力できます。サービス サブフォームには複数のフィールドがあり、そのうちの 1 つはドロップダウン フィールドで、クライアントが登録されているプログラムから選択できます (クライアントが新しいプログラムに登録されるたびに、そのクライアントのリストが更新されます)。
問題の詳細: 1 つの特定のレコードと 1 つの特定のプログラム領域について、そのプログラムが「登録済みプログラム」サブフォームから消え、関連するすべてのサービスが「サービス」サブフォームから 3 か月のデータ入力期間中に消えました。しかし、この記録のための他のプログラムやサービスは消えませんでした。
質問: データの消失は Access 2003 の一般的な問題ですか? データが消えているかどうかを確認し、そのデータをキャッチするために実行できるテストは実施されていますか? もしそうなら、それらは何ですか? 特定のコードが関係している場合、それは何ですか? データの消失を防ぐために何ができますか (別のデータベースを使用する以外に)?
mysql - 2 人のユーザーが同じデータを編集できないようにする
他の誰かが同じデータを同時に編集しているときに、データベースから記事/投稿/ページ/何かを開いた場合にユーザーに警告する機能を、Wordpress を含むさまざまな Web アプリケーションで見たことがあります (わかりませんか?)。
自分のアプリケーションに同じ機能を実装したいと考えており、これについて少し考えてみました。次の例は、これを行う方法の良い方法ですか?
次のようになります。
1)User A
不可思議な記事 X の編集ページに入ります。データベース テーブルEvents
を照会して、同じページを現在誰も編集していないことを確認します。次に、トークンがランダムに生成され、 というデータベース テーブルに挿入されますEvents
。
1)User B
また、記事 X を更新したいと考えています。User A
既に記事を編集しているため、Events
テーブルがクエリされ、次のようになります。
2) タイムスタンプがチェックされています。有効で、たとえば 100 秒未満の場合、メッセージが表示され、ユーザーは要求された記事 X を変更できません。
3) ユーザー A が続行して変更を保存することを決定した場合、トークンはデータベースを更新するために他のすべてのデータと共にポストされ、クエリを切り替えて token で行を削除しますuniqueid##
。彼が変更をコミットする代わりに何か他のことをすることにした場合でも、記事 X は 100 秒間編集できます。User B
このアプローチについてどう思うか教えてください!
素晴らしい週末をお過ごしください。
iphone - 多くの着信 1 対多の関係でコア データ エンティティの整合性を維持する
私は、メディア アイテムを記述する多くの MediaItem エンティティを含むコア データ ストアを持っています。また、多くの MediaItem と 1 対多の関係を持つ NewsItem もあります。ここまでは順調ですね。
ただし、MediaItems と 1 対多の関係を持つ PlayerItems と GalleryItems もあります。したがって、MediaItem はエンティティ間で共有されます。
多くのエンティティが 1 対多の関係を持つ可能性があることを考えると、MediaItem から、それと関係を持つエンティティのすべて (1 つ以上) への相互関係をどのように設定できますか?さらに、MediaItem を削除するルールを実装するにはどうすればよいですか?それらの相互関係の数が 0 になると?
記録のために(そしてそれが他の誰かに役立つ場合に備えて)、(最後と最後に名前が付けられた)とMediaLinkedEntity
1対多の関係を持つ抽象クラスを作成することでこれを解決しました。次に、このエンティティをおよびにサブクラス化し、 に次のメソッドを実装しました。MediaItems
MediaItems
MediaLinkedEntity
LinkedEntities
MediaItem
NewsItems
GalleryItems
-prepareForDeletion
MediaLinkedEntity
基本的に、以下のマーカスの回答に従います。
core-data - コア データ NSManagedObject ディープ コピーに関する疑問
1 つの NSManagedObject をメイン コンテキストから編集コンテキストにコピーする必要がある状況があります。Stackoverflow で説明されている同様の状況で見たように、ほとんどの人にとっては不必要に思えますが、必要なようです。
私のアプリでは、タブ バーに多くのビューがあり、すべてのビューは他のビューに関連するさまざまな情報を処理します。ユーザーがタブからタブにジャンプして一部のタブに保存されていない変更を残す可能性があるため、複数のMOCが必要だと思いますが、他のタブ/ビューにデータを保存する可能性があるため、それが発生した場合、残りのビューの変更はユーザーの同意なしに保存されます最悪の場合、アプリがクラッシュします。
新しい情報を追加するには、追加の MOC を使用して、両方の MOC の変更をマージすることで解決しましたが、編集はそれほど簡単ではありません。ここStackoverflowでも同様の状況を見ましたが、データモデルが関係にNSMutableSetを使用していないように見えるため、アプリがクラッシュします(多対多の関係ではなく、1対多だと思います)属性であるかのように関係を取得できるように変更できると思います
しかし、複製されたオブジェクトと元のオブジェクトの変更をマージする方法がわかりません。メインコンテキストからオブジェクトを削除し、両方のコンテキストをマージして変更をメインコンテキストに保存するだけでよいと思いますが、正しい方法かどうかはわかりません。また、逆の関係が元のオブジェクトと同じように複製されたオブジェクトへの参照を保持するかどうかわからないため、データベースの整合性についても懸念しています。
誰かがこれについて私に教えてもらえますか?
visual-studio-2010 - VS2010データベースプロジェクトが列名の変更に関するデータを削除する
Visual Studio 2010の新しいデータベースプロジェクト機能をテストしていて、テーブルの列の名前を変更したいと思います。createスクリプトで名前を変更し、データベースに対してデプロイしました。生成されたスクリプトは、列を削除し、正しい名前の新しい列を追加しましたが、すべてのデータが失われました。
列データを削除しない設定はありますか?
この問題に対する「DataDude」ソリューションを探しています。(ある場合)
ありがとう、キース
php - csv にエクスポート、カンマを含む文字列、分割
このコードは、Excel 内で開かれる csv ファイルにデータをエクスポートします。
文字列にコンマが含まれていると、データの順序が乱れます。
以下のコードを変更して、コンマを含む文字列を解決し、文字列の後まで新しい列を作成しないようにするための助けが必要です。
二重引用符内の各文字列または文字列を含むものを渡すと想定しているため、それらの引用符内のコンマは例外になります。
どんな助けでも大歓迎です。
database - 開発中にデータベースをどのように管理しますか?
私の 4 人の開発チームは、しばらく前からこの問題に直面しています。
場合によっては、同じデータ セットを処理する必要があります。そのため、ローカル コンピューターで開発を行っている間、開発データベースはリモートで接続されています。
ただし、他の開発者のデータを踏む操作をデータベースで実行する必要がある場合があります。つまり、関連付けを解除します。これには、ローカル データベースが適しています。
このジレンマを回避するためのベスト プラクティスはありますか? 「データの SCM」ツールのようなものはありますか?
奇妙なことに、SQL の挿入/削除/更新クエリのテキスト ファイルを git リポジトリに保持すると便利ですが、これはすぐに非常に遅くなる可能性があると思います。
皆さんはこれにどのように対処しますか?
c# - 関数で繰り返されるパラメータチェック
すべてのメソッドが同じパラメーターを必要とするという点で、私はしばしば呼び出し階層を持っています。それらをインスタンスレベル(クラスのメンバー)に配置したくない場合は、各メソッドでそれらの有効性をチェックすることが意味があるかどうかを常に尋ねます。
例えば:
Aがパラメータを使用している場合Method
、それは明らかです。そこで、MethdoBでも有効性を確認する必要があります。ただし、MethodAがにo
与える以外に何もしない限りMethodB
、で有効性を確認することをお勧めしMethodA
ます。
チェックインの利点はMethodA
、呼び出し先が呼び出したメソッドで例外がスローされることです。これは素晴らしいことですが、必要ですか?コールスタックはこれも示します。多分それは公的、内部的、保護されているが私的な方法では意味がないのだろうか?
例としてヌルチェックを取り上げましたが、インデックス検証や範囲検証も自己の質問に該当しますが、冗長なコードの危険性があるため、制限があると思います。どう思いますか?
アップデート
AakashMの回答を通して、私は少し正確であることがわかりました。MethodA
を呼び出すだけでなくMethodB
、他のことも行いますが、とは関係ありませんo
。これを明確にするために例を追加しました。AakashMに感謝します。