【发布时间】:2011-11-17 19:04:23
【问题描述】:
我有一个将组件存储在组件表中的数据库。 还有第二个表格是关于组件价格的。此表有一个映射到组件 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。它们是 $ 还是其他东西?
-
我刚刚在帖子底部添加了示例数据。价格为单价。因此,订购 10 件时,一个组件可能需要 0.50 美元,订购 1000 件时可能需要 0.40 美元。
-
如果您向我们提供表结构和每个示例数据以及预期输出,将会有所帮助。根据您提供的内容,我们可能能够提供比简单地回答您的 sql 问题更好的解决方案,例如,如果您最好也使用查找表,这(稍后)将证明您可以更轻松地进行维护,或者如果您需要一个非规范化的表:)