数据库设计创建一个有两个价格的产品

时间:2016-03-07 16:37:30

标签: sql database database-design relational-database database-schema

我正在为我们的水加注系统创建数据库设计,而我只是数据库的新手。我坚持创建表,为产品提供两种不同的价格。为了进一步解释我的问题,这里有一个例子,一个产品(' 5 GALLON')价格在客户交付或购买时发生变化。例如,交付的(' 5 GALLON')是45比索,而点加仑买的只有40比索。有谁可以帮助我吗?

到目前为止我的代码

create table Product (
    product_id int primary key,
    prodtype_id int,
    product_name varchar(55),
    product_quantity int
)

-----NOT SURE IF THESE TWO TABLES ARE CORRECT
create table DeliveryPrice (
    prod_id int,
    product_price money,
    foreign key (prod_id) references Product
)

create table OnPointPrice(
    prod_id int,
    product_price money,
    foreign key (prod_id) references Product
)

2 个答案:

答案 0 :(得分:1)

Product表中只有两个价格可能会更好。它们是产品的属性,因此它们属于它们。

此外,您应该指定数据库中哪些列为NOT NULL(应该是大多数列)。

答案 1 :(得分:0)

这是正确的吗?

创建表产品( product_id int主键, product_name varchar(55)not null, product_quantity int not null, pickup_price money not null, delivery_price money not null )

创建表Customer( customer_id int主键, customer_name varchar(255)not null, customer_address varchar(200), customer_phone int ) 创建表INVOICE( inv_number int主键, customer_id varchar(5), 外键(customer_id)引用Customer, inv_date日期不为null, buying_mode char(10)not null )

创建表LINE( INV_NUMBER int, 外键(INV_NUMBER)引用INVOICE, LINE_NUMBER INT不为null, PRIMARY KEY(INV_NUMBER,LINE_NUMBER), line_quantity int not null, line_price money not null )