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 到编辑表)的 Books 表......但您也可以将 BookID FK 设置为 Products.ProductID 所以,当您插入books 表中的一本书首先在 Products 表中插入一个 Product,该 ID 是 Books.bookID ...(与 movies 表相同)

希望能理解我。

干杯!

于 2013-02-28T14:43:48.357 回答