0

カテゴリごとにポイント計算の種類が異なるテーブルデザインを考え出そうとしています。

最初の例:顧客がCPUカテゴリから「IntelCPU Core i7 3770K」アイテムを注文-ポイントは(category_point / item_cost)を介して計算されます

2番目の例:顧客がSSDカテゴリから「OCZSSD」アイテムを注文する-ポイントは(category_point/ item_cost+ bonus_point+ other_name_point+ other_name_point)を介して計算されます

bonus_point表などでother_name_point、、の固定値を指定する必要がありますcategory_point。毎月かそこらで変更できます。

価格範囲の例(上記とは異なります)-顧客がマザーボードカテゴリのアイテムを注文した場合-ポイントは、次のようなアイテムのコスト範囲に基づいて計算されます。

0.00から£40=10ポイント

40.00〜£40=52ポイント

£40以上=64ポイント

価格帯のポイントを手動で指定する必要があります。これはcategory_point/ item_cost+++のbonus_point一部ではありませother_name_pointother_name_point

ポイント設定のテーブルを設計するにはどうすればよいですか?

4

2 に答える 2

0

次のようなものかもしれません:

Customers

  • Id
  • Name、
  • その他の情報
  • ..。

Orders

  • Id
  • OrderDate
  • CustomerId
  • ..。

*ItemsOrders *

  • ItemId
  • OrderId
  • ..。

Items

  • ItemId、
  • 項目名、
  • CategoryId、
  • ITemCost
  • ..。

Categories

  • CategoryId
  • Name
  • ..。

CategoryPoints

  • CategoryId
  • PointId
  • ..。

Points:: _

  • PointId
  • PointNam
  • PointCostTypeビット(「固定」または「変更」)、
  • ..。

PointsCostsRanges固定されていないパイントのみ

  • Id(サロゲートキー)。
  • PointId
  • FromRange
  • ToRange

ご了承ください:

  • カテゴリごとにパイントの種類がいくつあるかは言わなかったのですか?bonus_point、、other_name_pointの3つだけother_name_pointですか?その場合は、テーブルを削除して、テーブルPointsに3つの列を追加できCategoryPointsます。
  • あなたの例では、10ポ​​イントは実際にはどういう意味ですか?それはアイテムが持っているポイントタイプの数を意味しますか?たとえば、あなたの例のようにitemmに3つのタイプがある場合、 bonus_point3other_name_pointつのother_name_pointポイントがありますか?
  • これらの範囲が毎月変更される可能性がある場合は、日付範囲を追加する必要があるかもしれません。
于 2012-10-02T13:03:37.117 に答える
-3

あなたの例はビジネスルールのようです。ビジネス ルールは、データベースではなく、アプリケーション コードに含める必要があります。

ただし、変更を容易にするために、特定の値をデータベース テーブルに保持することもできます。マザーボードの例を挙げると、次のような構造のテーブルを持つことができます。

Part Discount
-------------
Discount ID
Part ID
Cost
Discount

この表の値は次のとおりです。

1, 23, 4000, 10
2, 23, Max int, 64

23 はマザーボードの部品番号です。

于 2012-10-02T13:02:43.360 に答える