0

オンライン在庫システムを開発しようとしています。次の表があります。

CREATE TABLE `product` (
  `ProductId` 
  `SubCategoryTypeId` 
  `MerchantId` 
  `ProductName`
  `MRP` 
  `Quantity` 
  `ProductCode` 
  `ProductSKUCode` 
  `BarCode`
  `Description_short`
  `Description_long`
  `ThumbnailImage`
  `ProductImage`
  `OurPrice`
  `MinBargainPrice`
  `Brand`
  `AirCost`
  `SurfaceCost`
  `ShippingAirTime`
  `ShippingSurfaceTime`
  `ColorCode`
  `DiscountPercent`
  `IsApproved`
  `IsActive`
  `HasSize`
  `isOnlineProduct`
  `isOfflineProduct`
  `ShippingCategory`
  `ProductExpiryDays`
  `RelatedVideo`
  `TechnicalSpecification`
  `CreatedDateTime`
  `ModifiedDateTime`
  `CreatedBy`
  `ModifiedBy`
  `IsCod`
  `HasOffer`
  `OfferText`
  `IsNewArrival`
  `HasColor`
  `NoOfRecommendation`
  `IsPremium` tinyint(1) 
  `IsImported`
  PRIMARY KEY (`ProductId`),
  KEY `Product_Category_Rel` (`SubCategoryTypeId`),
  KEY `Product_Merchant_Rel` (`MerchantId`)
) ENGINE=InnoDB AUTO_INCREMENT=2093 DEFAULT CHARSET=utf8 COMMENT='This table contains Product data.';

このテーブルを使用して、ほとんどの製品を追加できますが、本も追加できるようにこのテーブルを最適化する方法を教えてください。著者、出版社などがあるため、本の追加に問題があります。本を追加できるようにするために何をすべきか誰か提案できますか?

4

2 に答える 2

1

正規化ルールを使用して、テーブルをより多くのテーブルに分割してみることができると思います。関係をどのように適用できるかを理解するようにしてください。たとえば、データベースのテーブルを製品の名前を持つテーブルに分割したり、他のテーブルを使用して製品のプロパティをIsNewArrivalとして挿入したりできます。

于 2013-02-28T13:20:55.117 に答える
0

一般化/専門化を使用します。たとえば、すべての共通データを含む製品のテーブルがあります...しかし、より具体的なデータ(書籍など)の他のテーブルがあります。より良い例として、本、映画、その他のペン、鉛筆、印刷用紙など (図書館のもの) を販売しているとします。ProductID(pk)、名前 (varchar)、説明 (varchar) を含む製品のテーブルを作成できます。また、BookID (pk)、AuthorID (FK から Author テーブル)、ISBN (varchar)、EditorialID (FK から Editorial テーブル) を含む Books テーブルを作成することもできますが、BookID FK を Products.ProductID に設定することもできます。 books テーブルの本はまず Products テーブルに Product を挿入します。その ID は Books.bookID です... (movies テーブルも同じです)

私を理解してほしい。

乾杯!

于 2013-02-28T14:43:48.357 に答える