我需要将几个类别存储在数据库中并将其呈现给用户。每个至少有三个到最多四个范围。 E.g:
select * from YourTable where Year in (<firstquery>) as aliasname
order by <anydatecolumn>
当用户选择一个类别时,他应该选择一个将保存在数据库中的范围。
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
然后在将输出提供给用户之前详细说明输出(如果两个范围相等,则代码设置最后一个&#34;无限广告&#34;,所以第一个将是&#34; 0 - 1500, 1500 - 3000,3000 - 5000,5000 +&#34;)但似乎脏并且容易出错。
答案 0 :(得分:0)
您可以使用2个表格,例如Ranges:
id | RangeName| Start | End | Range |
--------------------------------------------------------------------
1 | A | 0 | 1500 | 1500 |
2 | B | 1500 | 3000 | 1500 |
3 | C | 3000 | 4000 | 1000 |
....
和RangeCategories
:
id | CategoryID|RangeId|
--------------------------------------------------------------------
1 | 1 | 1 |
2 | 1 | 2 |
3 | 2 | 3 |
4 | 2 | 1 |
.....
当然,您还将拥有categories
表:
id | CategoryName|...
--------------------------------------------------------------------
1 | Category1 | ...
2 | Category2 | ...
3 | Category3 | ...