【发布时间】:2016-09-20 10:52:44
【问题描述】:
我有几个类别需要存储在数据库中并将它们呈现给用户。每一个都有最少三个到最多四个范围。例如:
id | category_name | Range A | Range B | Range C | Range D
--------------------------------------------------------------------
1 | Category1 | 0 - 200 | 200 - 450 | 450 - 750 | 750+
2 | Category2 | 0 - 300 | 300 - 600 | 600+ |
3 | Category3 | 0 - 250 | 250 - 350 | 350 - 550 | 550+
当用户选择一个类别时,他应该选择将保存在数据库中的某个范围。
name | category_id | category_range
------------------------------------------
niceuser30 | 2 | A
hellouser1 | 1 | B
考虑到:
- 范围不能有间隙(例如,如果范围 A 从 100 到 200,范围 B 必须从 200 开始)
- 每个范围必须从 0 开始
- 每个范围都必须是开放式(或半开放式)
保存这些值的表格的最佳设计是什么?
我正在考虑使用类似的东西
id | category_name | range_a | range_b | range_c | range_d
-------------------------------------------------------------
1 | Category1 | 1500 | 3000 | 5000 | 5000
2 | Category2 | 500 | 1000 | 1000 |
然后在将其提供给用户之前详细说明输出(如果两个范围相等,则代码将最后一个设置为“ad infinitum”,因此第一个将是“0 - 1500, 1500 - 3000, 3000 - 5000, 5000+") 但它看起来 脏 并且容易出错。
【问题讨论】:
-
如果不知道哪些查询将应用于表,则无法充分回答此问题。
标签: mysql database-design range