我正在创建一个在线商店来销售枪支和相关物品。我一直致力于完善数据库(MySQL),因为它将成为网站的支柱。我的问题是,在保持规范化优先的同时,我无法理解应该如何布局数据库。该站点有许多产品,并且大多数产品具有相同的信息,但许多产品之间存在细微差别。
例如,弹药有四个类别,四个类别中的三个具有相同的信息,最后一个具有差异。我会为三个相同的表格制作一张表格,而为具有不同信息的一张表格制作一张单独的表格吗?或者我会创建表并有一列可以容纳具有该产品差异的数组或 JSON 字符串?
请记住,有许多产品存在相同的问题。我不害怕工作,我只是想确保我走在正确的道路上。
让我给你一个我的类别的简要布局:
• Firearms
• handguns (unique characteristics)
• centerfire rifles (unique characteristics)
• rimfire rifles (same as above)
• Ammunition
• rifle ammo (unique characteristics)
• handgun ammo (same as above)
• rimfire ammo (same as above)
• shotgun ammo (unique characteristics)
• Shooting Accessories
• there are many products here with unique characteristics
• Optics
• there are many products here with unique characteristics
• MANY MORE ...
我很想制作一张名为 products 的表,并将它们全部放在该表中,但由于存在细微差别,我确信这是不可能的。
*编辑*
这是我将拥有的属性差异的示例:
• Rifle Ammunition
• manufacturer
• model
• caliber
• bullet weight
• bullet type
• number of rounds
• price
• description
• sku
• rating
• Handgun Ammunition
• SAME AS ABOVE
• Rimfire Ammunition
• SAME AS ABOVE
• Shotgun Ammunition
• manufacturer
• model
• gauge
• shell length
• shot weight
• shot size
• velocity
• price
• description
• sku
• rating
步枪、手枪和 rimfire 将具有相同数量的属性 (10)。Shotgun 将具有 (11) 个属性,并且还有更多类似此问题的实例。
谢谢你看:)