0

假设我必须制作一个关于药物列表的数据库表。

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

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

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

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

4

1 回答 1

2

在单独的联轴器表中。制作一个包含所有可能权重(id、值)的表“weights”,并制作一个包含 2 列(组合主键)的“drugs_to_weights_coupling”:一个带有药物的 id,一个带有重量的 id。

这被称为“多对多”关系,可以很容易地用谷歌搜索。

于 2013-02-21T08:41:13.660 回答