数据库设计问题

时间:2010-07-14 13:31:10

标签: database-design

我有桌子产品和桌子尺寸。每种产品可以有多种尺寸。如何设计我的数据库以便不重复输入同一产品?

提前致谢

4 个答案:

答案 0 :(得分:2)

多对多关系的典型方法是使用名为Product_Size的映射表,其中包含每个表的主键。

create table Product (
    id uniqueidentifier not null,
    name varchar(255),
    primary key (id))

create table Size (
    id int,
    name varchar(255),
    primary key (id))

create table Product_Size (
    productId uniqueidentifier,
    sizeId int,
    primary key (productId, sizeId),
    foreign key (productId) references Product(id),
    foreign key (sizeId) references Size(id))

答案 1 :(得分:1)

product Table

 1. product id 
 2. product name
 ......

Product Size

 1. Id
 2. ProductId( Foreign key form product table)
 3. Size 

答案 2 :(得分:1)

这取决于,每个产品可以有多种尺寸,但不同的产品可以有相同的尺寸吗?

如果他们不能,则您拥有一对多的关系,并且您需要一个包含产品主键的ProductSize表。

ProductSize (SizeID, ProductID, Size)

如果他们可以拥有多对多的关系,你可以通过三个表,Product,Size和ProductSize来解决这个问题,其中Product包含产品,Size包含尺寸,ProductSize将每个产品映射到可用尺寸,持有产品和尺寸的主键。

Product (ProductID, ProductName)
Size (SizeID, SizeName)
ProductSize (ProductID, SizeID)

答案 3 :(得分:0)

尝试这样的事情:

Products
----------
ProductID    PK, auto increment int
ProductName
....

Sizes
------- 
SizeID      PK, auto increment int
SizeInfo
....

ProductSizes
--------------
ProductID   PK, FK to Products.ProductID
SizeID      PK, FK to Sizes.SizeID