【问题标题】:relational database and composite keys关系数据库和复合键
【发布时间】:2015-06-12 15:25:00
【问题描述】:

我有三个标准化的表:

  +---------------+                                                 
  |Product        |                                                 
  +---------------+                                                 
  |productCode(PK)|                                                 
  |title          |                                                 
  |description    |                                                 
  |price          |                                                 
  |productGroup   |                                                 
  +---------------+                                                 

          m                                                         
          |                                                         
          |                                                         
          1                                                         

 +------------------+                                               
 |Purchase Info     |                                               
 +------------------+                                               
 |productCode(FK)   |                                               
 |purchaseNumber(FK)|                                               
 |offerPrice        |                                               
 |quantity          |                                               
 +------------------+                                               

          1                                                         
          |                                                         
          |                                                         
          m                                                         

+---------------------+                                             
|Purchase             |           +-----------------+               
+---------------------+           |Branch           |               
|purchaseNumber(PK)   |           +-----------------+               
|productCode(FK)      |           |branchNumber(PK) |      more          
|branchNumber(FK)     |  m-----0  |buildingName     |  x2  (salesPerson,          
|salesPersonNumber(FK)|           |city             |      accountNo)         
|accountNumber(FK)    |           |postcode         |      similar tables         
|time                 |           |telNumber        |               
|tillNo               |           +-----------------+               
+---------------------+                                             
1 = one
0 = many

但我不太确定这些现在如何充当“数据库”。在此规范化之前,purchaseInfo 表不存在,属性属于purchase 表。 但是 productpurchase 是多对多关系。

我想要的是用户能够使用以下字段添加新购买:

  • 产品 - productCode
  • 数量 - quantity
  • 报价-offerPrice

并且能够从其他每个表中获取内容:

如何设置 MySQL 查询?

我想到了这样的事情:

INSERT into `purchaseInfo` (productCode, purchaseNumber, offerPrice, quantity)
VALUES ('".$productCode."', '".$purchaseNumber."', '".$offerPrice."', '".$quantity."');

但这对我来说真的没有意义。

关于我实际在做什么的任何其他想法或解释?抱歉,我在这门课上学得很差,不太清楚发生了什么!

【问题讨论】:

  • 为什么您的购买表中有 productCode?您的购买 产品关系应完全包含在您的购买信息表中

标签: mysql database many-to-many normalization database-normalization


【解决方案1】:

Purchase 中的每条记录就像您在超市得到的一张支票(例如 10 瓶喜力啤酒和 2 条面包)

购买信息中的每条记录是该支票上的一行(例如 10 瓶喜力)

Product 中的每条记录都是一种产品(例如“Heineken”)

因此,当您购买时,您可能至少需要两个插件 1) 插入购买 2) INSERT into PURCHASE_INFO - 一次购买有不同产品的次数

关于另一个主题:插入时不应连接字符串。请改用参数化查询(带有 ? 标记)。

【讨论】:

    猜你喜欢
    • 2011-06-24
    • 2011-02-04
    • 2019-08-11
    • 1970-01-01
    • 2018-06-10
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多