2014-05-22 32 views
0

我需要存储20个国家(最初)的30个类别物品的总计,并且还能够轻松更新和检索它们。什么是这样做的好方法?存储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 */ 

没有那些有什么东西好,说我的两个方法。

你能提出一个更好的方法来做到这一点吗?

+0

可能重复(HTTP:/ /stackoverflow.com/questions/23807781/update-a-table-with-count-from-another-table) – Strawberry

+0

@Strawberry这是如何重复? – Norman

+0

您已经正确认识到您的模式需要重新设计。考虑到这一点,要求SO社区继续考虑与不再相关的模式相关的问题是不恰当的。你应该关闭这个问题。或修改它并关闭这个。 – Strawberry

回答

2

您需要为类别标识及其描述以及其他国家/地区的表格。然后你在你的主表中(不管它是什么),你可以使用ID链接到两者。

另外,当你说你想存储总计时,你让我担心。你打算存储计算值吗?这是数据库设计中的一大难题。当它的时间成本不可接受时,您应该每次都重新计算一次,除了

+0

没错。我打算计算总数并存储它们。总数将显示在菜单中每个类别的旁边。这样,每次需要在页面加载时显示菜单时,我都不需要进行计数。 – Norman

+0

这是一个糟糕的设计选择。除非您有大量数据(20个国家/地区的30个类别(并且迄今为止)不是很多),否则将计算结果存储在表格中可能会使您的数据不准确或完全错误。如果不是瓶颈并降低数据质量,则不需要优化某些内容。 – ApplePie

1

那么,从你的设计看,当类别或国家增长时,你必须改变你的表格结构。在许多环境中,它会引起麻烦。

我将可能有表如下,

表国家

国家ID

....

表类别

Catetory ID

.. ...

表总计

CountryID

类别ID

总价值

....

的[更新与来自另一个表计数()的表]