在20个国家/地区存储30个类别的项目总计

时间:2014-05-22 15:47:23

标签: mysql database database-design

我需要在20个国家(最初)存储30个类别的项目总计,并且还能够轻松更新和检索它们。这样做有什么好办法?

我目前的方法是将类别用作列名。

"genId" "country"   "alcohol_spirits"   "music" /* other categories go here */
"1"     "US"        "0"                 "0"
"2"     "UK"        "0"                 "0"
"3"     "SE"        "0"                 "0"
/* other countries go here */

将国家/地区代码用作列名

 "genId"    "category"      "US"    "UK" /* other countries go here */
    "1"     "music"         "0"     "0"
    "2"     "movies"        "0"     "0"
    "3"     "food&Beverage" "0"     "0"
    /* other categories go here */

没有人对我的两种方法都说得好。

你能建议一个更好的方法吗?

2 个答案:

答案 0 :(得分:2)

您需要有一个类别表,其中包含类别ID及其描述,以及另一个国家/地区的表格。然后你在主表(无论是什么)中,你可以使用ID链接到两者。

另外,当你说要存储总数时,你让我担心。您是否计划存储计算值?这在数据库设计中是一个很大的禁忌。每当之外,你应该总是重新计算一切,因为它的时间成本是不可接受的。

答案 1 :(得分:1)

嗯,从您的设计来看,当类别或国家/地区增长时,您必须更改表格结构。在许多环境中,它会引起麻烦。

我可能会有以下表格,

表国家/地区

国家/地区ID

...

表类别

Catetory ID

.....

表总计

CountryID

类别ID

总价值

...