Code:
CREATE TABLE [dbo].[x_Products](
[ProductID] [int] IDENTITY(1,1) NOT NULL,
[ProductName] [nvarchar](255) NOT NULL
) ON [PRIMARY]
GO
INSERT [dbo].[x_Products] ([ProductID], [ProductName]) VALUES (1, N'T-Shirt')
INSERT [dbo].[x_Products] ([ProductID], [ProductName]) VALUES (2, N'Jumper')
CREATE TABLE [dbo].[x_Attributes](
[AttributeID] [int] IDENTITY(1,1) NOT NULL,
[ProductID] [int] NOT NULL,
[AttributeTitle] [nvarchar](255) NOT NULL
) ON [PRIMARY]
GO
INSERT [dbo].[x_Attributes] ([AttributeID], [ProductID], [AttributeTitle]) VALUES (1, 1, N'Size')
INSERT [dbo].[x_Attributes] ([AttributeID], [ProductID], [AttributeTitle]) VALUES (2, 1, N'Colour')
INSERT [dbo].[x_Attributes] ([AttributeID], [ProductID], [AttributeTitle]) VALUES (3, 2, N'Fabric')
CREATE TABLE [dbo].[x_AttributeOptions](
[AttributeOptionID] [int] IDENTITY(1,1) NOT NULL,
[AttributeID] [int] NOT NULL,
[AttributeOptionValue] [nvarchar](255) NOT NULL
) ON [PRIMARY]
GO
INSERT [dbo].[x_AttributeOptions] ([AttributeOptionID], [AttributeID], [AttributeOptionValue]) VALUES (1, 1, N'Small')
INSERT [dbo].[x_AttributeOptions] ([AttributeOptionID], [AttributeID], [AttributeOptionValue]) VALUES (2, 1, N'Medium')
INSERT [dbo].[x_AttributeOptions] ([AttributeOptionID], [AttributeID], [AttributeOptionValue]) VALUES (3, 1, N'Large')
INSERT [dbo].[x_AttributeOptions] ([AttributeOptionID], [AttributeID], [AttributeOptionValue]) VALUES (4, 2, N'Red')
INSERT [dbo].[x_AttributeOptions] ([AttributeOptionID], [AttributeID], [AttributeOptionValue]) VALUES (5, 2, N'Blue')
INSERT [dbo].[x_AttributeOptions] ([AttributeOptionID], [AttributeID], [AttributeOptionValue]) VALUES (6, 3, N'Cotton')
INSERT [dbo].[x_AttributeOptions] ([AttributeOptionID], [AttributeID], [AttributeOptionValue]) VALUES (7, 3, N'Wool')
Depending on your usage/products it might be an idea to have the attributes independent from the products and a fourth table specifying which attributes each product has; this way you can reuse single attributes across several products.
Bookmarks