問題タブ [static-data]
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 - アプリケーションとテストの静的データに関するアドバイス
私はかなり典型的なasp.net Webサイトに取り組んでおり、SQL Server 2005をデータベースとして使用しています。アプリケーションの典型的なビジネス ロジックを保持するモデル dll を作成しました。
アプリケーションは、より適切な永続ストレージがないため、データベースに格納されているいくつかの静的データに依存していますが、正しく機能するためにアプリケーションがこのデータに依存しているため、これらはモデルのプロパティであり、常にアクセスできる必要があると感じていますユニット/統合テストを実行して、このデータが利用可能であることを確認できるはずです。これは、データベースに対するユニット テストの原則に少し反します。
モデルの永続的な静的データを処理するための良いアプローチを持っている人はいますか? 埋め込み xml ファイルの使用も考えていますが、これにも明らかな欠点があります。
java - 参照データパターン
このスレッドに似ていますが、正確ではありません:スレッドセーフな方法で情報をキャッシュする方法
「参照データ」を処理するための通常のパターンは何ですか?アプリケーションによって頻繁に読み取られ、通常はデータベースまたはプロパティファイルで外部化されますが、更新頻度は非常に低い(日、週、月)データですか?データが更新されると、外部で更新されます。
これは通常、DAOを注入して、独自のコンテンツを管理できるシングルトンでしょうか?このサービスでrefresh()メソッドを公開して、強制的に更新する(つまり、MBeanを介して)というアイデアが好きです。したがって、アプリケーションをバウンスする必要はありません。
他のSOスレッドからは、必要に応じてDAOをインスタンス化し、そのレベルで透過的にキャッシュする可能性があるようです。
私は、シングルトンサービスに、データベースからデータをロードする実際のDAO、またはハードコードされた応答を返すモック/テストダブルのいずれかが注入されるというアイデアが好きです。ただし、Java列挙型を介してサービスをシングルトンとして実装する場合、これにより、Springを介してサービスを接続するのが少し問題になります。
では、他の人は通常、参照データをどのように扱いますか?随意にクエリを実行しますが、キャッシュを隠蔽しますか?または別のメモリ内サービス?
c++ - iphone c ++の静的データ
国の名前、人口、面積などを含む国のデータがあります...
それらを保存する最良の方法は何ですか、ヘッダーファイルに静的配列を考えていました...?
主にiPhoneのゲームにc ++を使用しています
sqlite、plists、dictionaries などの他のオプションを検討する必要がありますか?
iphone - iPhone アプリで静的データを送信する
私はゲームを作成しており、ゲームのさまざまな船に関するデータと、アプリが使用する船に関する詳細を送信できるようにする必要があります。これを行うための理想的な方法が何であるかを探しています。これで、SQLite、コア データ、またはプロパティ リストのいずれかを使用するように絞り込みました。今、私が心に留めておきたいのは記憶です。これはゲームなので注意が必要です。プロパティ リストはすべてメモリにロードする必要があるため、理想的ではないかもしれません。私は、SQLite がそれよりも優れたパフォーマンスを発揮するはずであることを知っており、Core Data はそれよりもさらに優れたパフォーマンスを発揮すると聞いています。私の質問は、iPhone アプリで静的データを送信する最良の方法は何だと思いますか?
java - Google App Engine で Java を使用して、大規模な静的データを保存してアクセスするための最良の方法は何ですか?
ほとんどのアプリの「動的」データをデータストアに保存しています。
ただし、アプリの新しいビルドでのみ変更される静的データの大規模なコレクションもあります。一連のフラット ファイルは、データストアで管理するよりも簡単に思えます。
これに対する標準的な解決策はありますか?このコンテンツの読み込み/解析を迅速かつ簡単にするライブラリはどうですか? このデータをデータストアにプッシュする方が理にかなっていますか? どちらがより良いパフォーマンスを発揮しますか?
他の誰かがこの問題を抱えていて、共有できる戦争の話を持っていますか?
database - 参照データの削除/無効化アプローチ
私がここで見つけた議論に基づいて:データベース:レコードを削除するかどうか、特に参照データに焦点を当て、それにいくつかの考えを追加し、一般的に、またはどの基準に基づいてあなたの好ましいアプローチを尋ねたいと思います利用可能なアプローチのどれを選択するかを決定します。
顧客向けの「リクエストデータベース」のデータ構造を次のように想定しますが、リクエストはさまざまなチャネル(電話、メール、ファックス、..;主に焦点を当てたい「参照データテーブル」)を介して配信される可能性があります。
最初に、これら2つのテーブル内の次のデータを想定しましょう。
リクエスト:
チャネル:
したがって、次の要件を想定して、これをどのように攻撃しますか。
チャネルは時間の経過とともに変化する可能性があります。つまり、説明が変わる可能性があります。新しいものを追加することができますが、特定のデータからのみ有効です。チャネルは(特定の日付までに)無効になる可能性があります
レポートと監視の目的で、リクエストが最初に提出されたチャネルを使用して識別する必要がある可能性があります。
新しいリクエストの場合は、現在「有効な」チャネルのみを許可する必要がありますが、既存のリクエストの場合は、その特定の日付で有効だったチャネルも許可する必要があります。
私の理解では、それは明らかに、削除フラグを超えたより豊富な無効化アプローチ、おそらく参照データテーブルの「ValidFrom/ValidTo」アプローチを組み込んだものを求めています。
一方、これには、リクエストのデータキャプチャ中にいくつかの問題が伴います。これは、新しいリクエストの場合は現在使用可能なチャネルのみを表示するのに対し、既存のチャネルを維持するには、このレコードの作成時に使用可能なすべてのチャネルを表示する必要があるためです。表示されます。これは、開発の観点から複雑であるだけでなく、ユーザーにとって直感的でない場合もあります。
時間の経過とともに発生する可能性のある参照データのデータモデルを一般的にどのように設定しますか?では、どのようにユーザーインターフェイスを作成しますか?適切なデータベース設計のために、さらにどのパラメータを考慮しますか?
database-design - トランザクションデータベース内のスナップショットの設計と参照データのバージョン管理
免責事項:スタックオーバーフローとインターネットの両方でスナップショットとバージョニングのトピックについて読むことができるすべてを読みました。私の要件は、監査証跡またはデータベースレベルのスナップショットのバージョン追跡ではありません。私は1週間以上を費やして、自分で調査し、可能な選択肢について考えました。申し訳ありませんが、いくつかのリンクを見逃している可能性があります-私の問題の解決策がすでに他のスレッドで議論されている場合は、そこに私を向けてください。
少し長いです。我慢してください。
状況は次のとおりです。トランザクションデータベースにトランザクションデータのスナップショットを保存し、参照データの改訂履歴を保持するための汎用設計を作成しようとしています。
ビジネスプロセスの一環として、ユーザーはボタンを押して特定のオブジェクトを公開できます。説明のために、ユーザーは交渉が始まる前にベンダーからの提案を公開できるとしましょう。次に、交渉プロセスのさまざまな時点で、ユーザーは提案データを公開できます。提案には、予算、販売目標、およびその他の多くの項目が含まれています。プロポーザルのスナップショットを作成するときは、リンクされているすべてのエンティティのスナップショットを作成する必要があります。最後に、交渉後、契約が締結されます。この時点で、契約の完全なスナップショットを作成する必要があります。契約内のすべてのエンティティがプロポーザルに含まれているわけではありません。重複するエンティティは多数ありますが、プロポーザルと契約に関連付けられている固有のエンティティがあります。
これらの公開バージョンと最新のアクティブバージョンの両方を利用可能にしておく必要があります。公開されたバージョンは、両方のベンダーと管理チームが参照できるようにWebサイトで入手できます。公開されたすべてのバージョンがWebサイトで利用できるわけではありませんが、最後に公開された提案と最新の公開された契約は常にWebサイトで利用できます。このWebサイトも、同じデータベースから作成する必要があります。
また、財務ユーザーは予算のみのスナップショットを作成することを決定でき、営業マネージャーは販売目標のスナップショットを作成できます。そのため、スナップショットは複数の粒度で利用できます。
また、マスターデータのバージョンを追跡する必要があります。主要なマスターデータ列へのすべての変更を経時的に追跡することはビジネス要件です。たとえば、販売目標に関連付けられた地域情報があります。地域の名前は変更される可能性があるため、これらの変更を追跡する必要があります。提案時に、リージョンの名前がR1であり、スナップショットが作成されていると仮定します。次に、リージョンの名前がR2に変更され、他の2つのスナップショットが作成されます。その時点での販売目標を正しい地域名にリンクできるようにしたいのですが、必ずしも最新の地域名にリンクする必要はありません。
トランザクションDBとデータウェアハウスDBの両方があるため、モデリングにある程度の柔軟性があり、この情報の一部をトランザクションDBまたはデータウェアハウスDBのいずれかに格納することを決定できます。
これが私たちのデザインです。公開されたデータに関する基本情報(誰が公開したか、日付、理由、公開されたオブジェクトのタイプ(提案、予算、または販売目標))をキャプチャする公開テーブルがあります。
スナップショットは元のデータと同じテーブルに保存されます。したがって、プロポーザルのスナップショットは、ライブプロポーザルとともにプロポーザルテーブルに保存されます。公開する必要のあるすべてのテーブルに、公開IDという列があります。この列は、PublicationテーブルへのFKです。パブリケーションIDがnullの場合、そのレコードはアクティブなバージョンです。
投稿が非常に長いことに気づきました。したがって、シナリオの詳細をリストするのではなく、マインドマップで設計上の考慮事項をすばやく要約することを考えました。
現在、私たちが傾倒している2つのソリューションがあります。どちらも、変更されたかどうかに関係なく、すべてのデータのスナップショットを保存します。テーブル構造をそのまま維持しながらデルタのみを維持するには、スナップショットオブジェクトの挿入/更新のたびに実行する必要がある非常に複雑なストアドプロシージャが必要になります。これには時間がかかり、ボリュームはとにかくそれほど大きくないので、私はこのルートを下りたくありません。
解決策1:オブジェクトが公開されるたびに(提案や予算など)、XMLツリーにデータを入力し、これをデータベースに保持します。最新バージョンのみがWebサイトで利用可能である必要があり、古いバージョンが必要になることはめったにありません。これを考えると、XMLを使用しているために大きなパフォーマンスの問題が発生しますか?SQLServerを使用しています。データ量はそれほど大きくありません。
解決策2:すべてのトランザクションテーブルにはパブリケーションIDがあり、参照データには開始日と終了日があります。オブジェクトが公開されるたびに、すべてのトランザクションレコードのコピーを作成し、そこに公開IDを配置し、すべての参照データレコードをコピーして、スナップショットの日付を終了日として配置します。これにより、公開プロセスの外部で参照データの通常のバージョン管理を行うことができます。
これらの2つのアプローチの欠点と、他にもっと良いシナリオがあるかどうかについて、ここで経験豊富な心からの意見が必要です。
visual-studio-2010 - Visual Studio 2010 データベース プロジェクトでシード データを生成する
Visual Studio 2010 にデータベースとデータベース プロジェクトがあります。データベース プロジェクトのスキーマを正常に推測しましたが、参照テーブルであり、参照テーブルではないいくつかのテーブル (Country、State、UserType など) のデータを何らかの方法でインポートする必要もあります。本当にデータテーブル。
方法はありますか?
これまでに見つけた唯一の方法は、SQL Server Management Studio でデータ スクリプトを生成し、このスクリプトをデータベース プロジェクトの配置後スクリプト ファイルに配置することです。
もっと簡単な方法はありますか?
android - 静的データとしてsqliteを使用するアンドロイド
重複の可能性:
Android 事前入力 DB
SQLite を静的データとして使用したい。つまり、アプリケーションが最初に起動する前にデータをプリロードするということです。このデータは静的です = 挿入、削除、または更新はありません。SQL データベースのクエリとインデックスを最大限に活用したいだけです。私の SQLite データベースには大量のデータが必要なので、最初の読み込み時間が長くなってユーザーを混乱させたくありません。
それを行う方法はありますか (事前にロードされ、事前定義され、事前に挿入されたデータベース)?