【问题标题】:Mysql Database design structureMysql数据库设计结构
【发布时间】:2012-05-26 00:05:49
【问题描述】:

插入记录时哪个数据库设计更好?

**Option 1.**
uid|itemid| qty | price | amount
1  |13| 2  |  100    |200

**Option 2.**
uid| itemid| qty | price | amount
1  |13| 1 | 100 | 100
2  |13| 1 | 100 | 100

在选项 2 中,然后通过 mysql 查询检索行并使用 id 计算 ...

【问题讨论】:

  • 第一个...这正是 MySQL 的优化目标。
  • 确实是第一个,但如果总是数量 * 价格,则忽略“数量” - 除非您要做很多事情,否则按 about 搜索我们的订单(在这种情况下,请留下 itin 和 index它)
  • 第二张桌子有缺陷,没有钥匙。在大多数情况下,没有 Key 的表是一个危险信号。即使添加“LineNo”也足以限定密钥。话虽如此,感觉好像缺少一些上下文。请详细说明类型、关系和角色(至少对您自己而言)。
  • -1 对于一个非常模糊的标题。将其更新为相关内容,我将删除反对票。 (例如“存储客户订单的表格模式?”或任何合适的东西。)
  • 我暂时删除了我的答案,因为我意识到“id”是模棱两可的。它是一个项目,一个销售或其他一些ID?如果您能指出这是用于存储什么数据,那就太好了。

标签: php mysql database


【解决方案1】:

您似乎希望保留订购的每件商品的原价。我要做的是使用选项 1,然后在您的表中创建另一个列,其中包含一个标识订单中每个项目的字符串。

例如,如果我在卖水果,香蕉可以有 iZ 作为唯一键。苹果可以将6U 作为唯一键。当用户下订单时,这些唯一键将被插入到您的新列中。因此,当您看到此列的数据为 iZ6U 时,您就会知道用户订购了一个苹果和一个香蕉。

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 2013-02-17
    • 2021-08-10
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多