1

我的数据库:

CREATE DATABASE `cars` /*!40100 DEFAULT CHARACTER SET latin1 */;

DROP TABLE IF EXISTS `cars`.`employees`;
CREATE TABLE  `cars`.`employees` (
  `emp_id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(40) DEFAULT NULL,
  `last_name` varchar(40) DEFAULT NULL,
  PRIMARY KEY (`emp_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

DROP TABLE IF EXISTS `cars`.`products`;
CREATE TABLE  `cars`.`products` (
  `prod_id` int(11) NOT NULL AUTO_INCREMENT,
  `prod_name` varchar(40) DEFAULT NULL,
  `prod_price` varchar(40) DEFAULT NULL,
  PRIMARY KEY (`prod_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

那是我的数据库查询。我的任务是创建 CARS 数据库,其中包含有关员工和汽车的信息,该数据库还必须包含有关出售哪辆汽车和哪位工人出售它的信息。

我的问题:我如何存储销售,以便我记录哪个员工销售了哪些汽车。

4

3 回答 3

4

可能创建一个表格来记录哪些员工卖了哪些汽车?

EmployeeSales
---------------
emp_id
prod_id
OtherInfo
于 2013-05-28T16:01:58.970 回答
1

这是一个设计决策,涉及您(或您组织中的其他人)在开发之前必须考虑的 1NF 方向。为了回答您的具体问题,这是需要外部参照表来汇总所有客户-车辆关联以及涉及销售的额外详细信息的典型情况。IE:

Sale table: 
-----------------------------
sale_id autonumeric(1,1) PK
, emp_id int FK
, prod_id int FK
, price decimal(10,2)
, sold_date datetime(2)
, other_interesting_sale_details

这是一种可能的解决方案,它将保留有关特定员工出售的汽车的历史信息以及特定企业可能感兴趣的其他详细信息。

我希望它有所帮助。

于 2013-05-28T16:19:25.090 回答
0

取决于您想要扩展的范围...您有一个产品表...这是否适用于您的汽车,并且每辆汽车都将直接添加到此表中?如果是这样,那么您可以只添加两个字段

在 products 表中,添加一列“SoldBy”作为整数。这可能是员工表员工 ID 的链接。

如果值被填充,它被出售,如果被出售,它是出售它的员工。

于 2013-05-28T16:05:34.060 回答