表非要有主键吗?是否我的数据库设计出了问题?(大家看看)
设计背景: 
 一个订单可有多个物品。 
 如何把这个关系设计成表呢? 
 如果设计成   订单ID   物品ID   那么这个表中不存在主键。是否是数据库设计出了问题?真的一定要主键吗?
------解决方案--------------------物品表: 物品ID 
 订单表: 订单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
------解决方案--------------------OrderProcuctRelation 表中可以 OrderId ,ProductId 做联合组件不需要ID 
 我一般用 Gentel 做 ORM   自动生成代码的模板不支持双主键,所以加了个 ID 做主键