我正在尝试开发在线广告资源系统。 我有下表:
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.';
使用此表我可以添加大部分产品,但我如何优化此表以便也可以添加书籍。我有添加书籍的问题,因为它有作者,出版商等。任何人都可以建议做什么,以便我也可以添加书籍?
答案 0 :(得分:1)
我认为您可以尝试使用规范化规则将表拆分到更多表中。试着了解如何应用关系。例如,您的数据库表可以拆分为一个表名为product ant的表,其他表可用于将产品属性作为IsNewArrival插入。
答案 1 :(得分:0)
我使用泛化/专业化。例如,您有一个包含所有公共数据的产品的表...但是有其他表用于更多特定数据(如您的书籍)。 一个更好的例子,请求您销售书籍,电影和其他东西,如钢笔,铅笔,印刷品等(图书馆用品)。那么你可以有一个ProductID(pk),name(varchar),description(varchar)的产品表。您还可以使用BookID(pk),AuthorID(FK到作者表),ISBN(varchar),编辑ID(FK到编辑表)的Books表...还可以将BookID FK设置为Products.ProductID,这样,当您插入时书籍表中的书首先插入产品中的产品表,该ID是Books.bookID ...(与电影表相同)
希望了解我。
干杯!