设计背景:
一个订单可有多个物品。
如何把这个关系设计成表呢?
如果设计成 订单ID 物品ID 那么这个表中不存在主键。是否是数据库设计出了问题?真的一定要主键吗?
一个订单可有多个物品。
如何把这个关系设计成表呢?
如果设计成 订单ID 物品ID 那么这个表中不存在主键。是否是数据库设计出了问题?真的一定要主键吗?
解决方案 »
- 请教一条sql语句
- 急,sql,
- 求助:取用户列表的存储过程,不知道哪错了?
- 求救:作为源列 9(“备注”)的数据对于所指定的缓冲区来讲太大。
- sql 中 text类型的字段(存储中英文混合文字) 使用 charindex 和subString的问题
- 自建函数内不能使用Getdate() 函数,请高手指教如何解决这个问题。急!!!
- 这个group by 语句怎么写?
- *******我想在SQL server中删除表中相同的纪录,SQL语句怎么写?*******
- 如何调用sql server中存储过程以及如何传递参数?
- 如何找相同记录?
- 200分求教一个更新语句(有点复杂,是否要用游标呢?)
- 请教,SQL中数据合并问题
订单表: 订单ID
订单物品关系表:物品ID,订单ID,购买数量
订单表:
create table OrderItem
(
OrderId int primary key identity(1,1) not null, -- 订单ID
OrderDate datetime default (GetDate()) not null, -- 下订单时间
OrderUserId int foreign key references UserInfo (UserId) not null
)订单和商品关系表:
create table OrderProcuctRelation
(
ID int primary key identity(1,1) not null, --关系ID
OrderId int foreign key references OrderItem (OrderId ), --订单ID
ProductId int foreign key references Product (ProductId ) , --商品ID
)例如:
OrderItem
OrderId OrderDate OrderUserId
1 2007-03-27 100
OrderProcuctRelation
ID OrderId ProductId
1 1 1
2 1 2
我一般用 Gentel 做 ORM 自动生成代码的模板不支持双主键,所以加了个 ID 做主键