我有桌子产品和桌子尺寸。每种产品可以有多种尺寸。如何设计我的数据库以便不重复输入同一产品?
提前致谢
答案 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