在数组中创建新表或存储

时间:2015-02-19 12:03:30

标签: php mysql mysqli

我将尝试尽可能地简化这一点我正在开发一个应用程序,该应用程序提供从类别(C)到其用户(U)的一系列资源(X)。用户将选择一个类别,然后从该类别中提供资源。他们可以选择6-7个类别(15-16个),一旦他们选择了类别,他们就可以选择在该类别中服务的个人资源;将有超过10000个资源,用户可以选择最多40-50个。我认为将类别选项存储为一个称为首选项的数组应该没问题(如果我错了,请纠正我),因为它只是一个20字符的字符串)。但是,我在质疑我是否应该对资源做同样的事情,因为它将超过200个字符串。我的另一种方法是创建一个用户资源表,列出每个配对对待就像一个事务。因此,用户(1)可能有30行,每行与单独的资源相关联。

所以每个用户都有:     

        
  • ID
  •     
  • 名称
  •     
  • 偏好设置(资源类别(C)的3个字母缩写数组,最多6-7个,所以我不认为将它放在逗号描述的字符串中会是一个问题)
  •     
  • 资源:我应该在这里包含另一个数组吗?
  •     

每个类别(C)只有:     

        
  • 编号
  •     
  • 名称
  •     

每个资源(R)具有:     

        
  • ID *
  •     
  • 名称
  •     
  • 分类
  •     

<b>Or create an User-Resource Table here:</b>
<ul>
<li>Id*</li>
<li>Resource Id:</li>
<li>User Id:</li>
</ul>

1 个答案:

答案 0 :(得分:0)

如果您将资源存储在字符串中,则以后查询它们时会遇到问题。存储200个字符长的字符串没有问题,但插入或删除资源可能很麻烦,并且查询(例如,如何计算选择特定资源的用户数量?)。

创建一个Users-Resources表来存储它。每个用户30行不是问题,这就是数据库的含义。只需要注意创建正确的外键和索引。

事实上,你也应该对偏好做同样的事情。

阅读database normalization(特别是第三范式)。

相关问题