我正在寻找一些关于重新设计产品数据库的方向以及从中存储/检索数据的最佳方法的建议。我遇到的问题是如何最好地代表产品可能具有的各种(有效)选项。
基本结构是(不是实际的表定义):
PRODUCT_TABLE {
ID(int),
NAME(varchar),
AVAILABLEOPTIONS(varchar),
etc...
}
COLOROPTIONS_TABLE {
ID(int),
COLORNAME(varchare),
etc...
}
BODYOPTIONS_TABLE {
ID,
BODYNAME,
etc...
}
在 AVAILABLEOPTIONS 字段中存储值的最佳方式是什么,这将允许我在产品可用的那些表中指定 OPTIONS 表和 ID。(即,产品可能无法在所有选项中使用特定选项表)
我做了很多研究(主要是在这个很棒的网站上)并查看了 JSON、序列化值、多维数组等,但我不确定最好的方法。
最后, AVAILABLEOPTIONS 值将用于在产品页面上显示选项或用于构建表单以供用户生成有效的产品代码。我还将尝试设置一个输入表单,允许管理员生成用于存储在数据库中的可用选项值。
任何提示或想法将不胜感激!
我不确定这是否是放置此更新的正确位置,但这里是。
进行了更多研究,似乎在单个字段中存储多个值是绝对禁止的。我也不确定 EAV 模型是否适合我的需求。但是当谈到规范化我拥有的数据库要求时,我不确定我是否已经弄清楚了。我想出了这个:
图片在这里:http ://dev.aqualux.com.au/images/1.png (不会让我在编辑中发布图片,因为我在这里太新了......)
橙色表中的 pid/oid 是外键。我没有掌握的问题是任何给定的产品都可以有给定类型的多个选项,或者根本没有....
谢谢