3

コードのどこで変換を行う必要がありますか?クライアント、サーバー、ビジネス、またはデータベース?

現在、データベースでタイムゾーンと測定単位の変換を行っていますが、パフォーマンスが低下しているため、ロジックを移動したいと考えています。これに最適な場所はどこだと思いますか?

ありがとう

4

4 に答える 4

5

私は間違いなくそのコードをDBから取り出します。可能な限り、すべてのデータを共通の単位セットに格納したいと考えています。1 つの特定のロケール (通常は独自のロケール) 用に時刻データを保存することは一般的です。

異なるロケールの時刻を使用して計算を行う必要があり、同じ開始参照が必要になるため、ビジネス層にも入れません。繰り返しますが、それらはすべて共通のベースに置いておく必要があります。ここで最も論理的なことは、それらを保存するロケールをベースにすることです。

最も論理的なことは、時間を表示する直前に、可能な限り最後の瞬間に時間をユーザーのロケールに変換することだと思います。これにより、GUIレイヤーにしっかりと配置されます。

于 2008-12-29T19:04:43.950 に答える
2

通常、これらはクライアント/UIの選択です。ただし、その設定はサーバーまたはビジネスルールに渡すことができます。

私はクライアントでそれを行い、他のすべての場所でデータを正規化します。

編集:

本当にシンクライアントがあり、それにロジックを追加したくない場合は、コード/ルールなどがある次の場所を見つけて、そこに追加します。最も外側/クライアント側のコードを見つけて、それと一緒に置きます。

于 2008-12-29T18:33:58.757 に答える
0

「コンバージョン」の意味がわかりません。ローカリゼーションを意味する場合、それは伝統的に GUI レイヤーで行われます。

于 2008-12-29T18:53:18.077 に答える
0

私たちはそれらを「可能な限り早く」(私たちの場合はクライアントが接続されている場所で)実行し、サーバー上でエンドツーエンドの統合データを操作しようとしています. もちろん、送り返す際には適宜データ変換を行います。

于 2008-12-29T18:35:15.587 に答える