我应该如何在mysql数据库中存储一系列数据?

时间:2013-02-21 08:38:59

标签: php mysql

假设我必须制作一份关于药物清单的数据库表。

  • 第一列是具有自动增量的唯一标识符字段。例如,“1”
  • 第二栏包含药物的名称。例如,“Tramadol”
  • 第三列包含权重列表。例如,“30g,40g,50g,60g”

使用php while循环和数组,我可以使用以下方法回显此数据:

while ($row = mysql_fetch_array($result)) {
   echo "Drug Name: {$row[1]} Drug Weights: {$row[2]}"
}

虽然这样可行但我知道这绝对不是最好的方法。权重列表必须是varchar,而不是实际的单个整数。如第三列所示,存储和回显单个产品的一系列信息的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

在单独的联轴表中。制作一个包含所有可能权重(id,value)的表'权重',并用2列(组合主键)制作'drugs_to_weights_coupling':一个具有药物ID,一个具有权重id。

这称为“多对多”关系,可以是Googled as such easily.