1

以下の範囲をテーブルに保存したいのですが、template01 の項目数は 6、2 番目は 4 です。この情報を保存するためにテーブルをどのように構成すればよいでしょうか。これらの値をカンマ区切りで表示するか、指定された範囲値ごとに 1 つの列を表示するのが私の最後のオプションです。以下の情報を格納するためにテーブルを構造化する方法を教えてください。

Template01      0      10       20         30      40       50
Template02      0      50      100        150
Template03      0     100      200        300     400      500      600 

基本的に、これらの範囲をテンプレートとして保存し、後でそれを使用して、荷物の重量が 0 ~ 10 の場合は 1 キロあたり 5 ドル、10 ~ 20 の場合は 1 キロあたり 4.8 ドルの費用がかかるなどと伝えたいと考えています。

これがテンプレートの使用方法です。

Domain: XYZ
Template01      0      10       20         30      40       50
Increment01%   125%    120%      115%       110%    105%    100%

Domain: ABC, am using or picking the same template 'Template01' but Increment% 
will be different for different domain, hence

Template01      0      10       20         30      40       50
Increment02%   150%    140%      130%       120%    110%    100%

アイデアは、ウェイトブレークのテンプレートを保存し、後で別の Increment% に関連付けたいということです。したがって、ユーザーがウェイト ブレーク テンプレートを選択すると、そのテンプレートに適用または構成されたすべての増分 % 値が表示され、ユーザーはいずれかを選択できます。

Template01      0      10       20         30      40       50
Increment01%   125%    120%      115%       110%    105%    100%  [Choice 1]
Increment02%   150%    140%      130%       120%    110%    100%  [Choice 2]
4

2 に答える 2

5

標準的なアプローチは次のとおりです。

Template_Name  Weight_From  Weight_To  Price
-------------  -----------  ---------  -----
Template01     0            10         5
Template01     10           20         4.8
...
Template01     40           50         ...
Template01     50           (null)     ...
Template02     0            50         ...
...
Template03     500          600        ...
Template03     600          (null)     ...
于 2013-03-19T10:53:13.200 に答える
1

正規化されたスキーマの場合、テンプレート、インクリメント、テンプレートの重み、インクリメント ファクターのテーブルが必要です。

 create table luggage_weight_template (
   luggage_weight_template_id number primary key,
   template_name varchar2(100) unique);


 create table luggage_increment (
   luggage_increment_id number primary key,
   increment_name varchar2(100), 
   luggage_weight_template_id  references luggage_weight_template(luggage_weight_template_id)); 


 create table template_weight (
   template_weight_id number primary key,
   luggage_weight_template_id references luggage_weight_template(luggage_weight_template_id),
   weight_from  number not null);


 create table increment_factor (
   increment_factor number primary key,
   increment_id references luggage_increment(luggage_increment_id),
   template_weight_id references template_weight(template_weight_id));
于 2013-03-19T17:46:16.043 に答える