我有一个数据库存储组件表中的组件。 还有第二个组件价格表。该表有一个映射到组件ID的字段。我的价格表需要存储一堆不同价格的信息(10,100,1000,10K,100K,1M)。事情是,未来有可能存储其他价格类型,如25K或50K。价格数据的数据库设计
至于现在,我的价格表如下:
id component_id type price
其中类型可以从1-6目前采取的值。这很好,因为它可以让我在未来非常轻松地添加新的价格类型。
另一种选择是价格表如下:
id component_id price_10 price_100 price_1000 price_10K price_100K price_1M
但在这种情况下,我需要在每次添加新的价格类型时添加一个新的领域。
我希望这里的人会同意第一种方法。
但是使用第一种方法时,我无法显示一个页面,该页面可能会显示我的数据库中的所有组件,可能有或没有6的价格(在这种情况下应显示0)。显然,使用第二种方法很简单。
这是查询我到目前为止:
SELECT * FROM `component` LEFT JOIN `component_cost` ON `cmpcst_component` = `cmp_id`
编辑: 我想我会表现出从组件价格表中的一些样本数据: 价格是单价,金额X,X范围从10到100万。所以我可能有这样的事情在我的组件价格表:
id component_id type price
1 1 1 0.50
2 1 2 0.45
3 1 3 0.40
4 1 4 0.35
5 1 5 0.32
6 1 6 0.30
类型和价格之间的关系是什么?一种类型可以有两种不同的价格吗?换句话说,这些数字是什么:10,100,1000,10K,100K,1M,25K,50K。他们是美元还是别的东西? – Kash
我刚刚添加了示例数据到我的文章底部。 价格是一个单价。因此,一个组件在订购10个单位时可能花费0.50美元,或者订购1000个单位时花费0.40美元。 – Justin
如果你给我们每个表的结构和样本数据,以及预期的输出,它会有所帮助。根据您提供的内容,我们可能会提供一个更好的解决方案,而不仅仅是回答您的sql问题,就像您最好还是利用查找表一样,后者会证明给您更轻松的维护,或者如果你将需要一张已经非规范化的表格:) – Nonym