РЕДАКТИРОВАТЬ: MySQL добавлен в конец ответа
Дизайн базы данных, которую вы цитируете, не соответствует первой нормальной форме (1NF).
Это будетбудет более полезным для вас, если вы разделите свою базу данных на несколько таблиц с помощью таблицы типов.Это создаст реляционную базу данных без дублирования, и идентификаторы не будут конфликтовать, если произошла ошибка пользователя.
Table: Item
Id (int, auto-increment) [PrimaryKey]
FkTypeId (int) [ForeignKey]
Name (string)
Description (string)
Material (string)
Manufacture (string)
Table: Type
Id (int, auto-incrememnt) [PrimaryKey]
Name (string)
Теперь вы можете вставлять ваши типы в таблицу типов (рубашка, штаны), Чистка и т. Д.) И ассоциируйте каждый элемент с соответствующим типом.
Вот страница википедии в первой нормальной форме, которую вы должны стараться придерживаться в любом дизайне базы данных: http://en.wikipedia.org/wiki/First_normal_form
Вот MySQL-версия моего предложения:
ПРИМЕЧАНИЕ. ЭТО РАБОТАЕТ В MyISAM
CREATE TABLE ProductType (
Id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
Name VARCHAR NOT NULL ,
PRIMARY KEY(Id));
CREATE TABLE Product (
Id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
ProductType_Id INTEGER UNSIGNED NOT NULL ,
FkTypeId INTEGER UNSIGNED NOT NULL ,
Name VARCHAR NOT NULL ,
Description VARCHAR NOT NULL ,
Material VARCHAR NULL ,
Manufacturer VARCHAR NULL ,
PRIMARY KEY(Id, ProductType_Id) ,
INDEX Product_FKIndex1(ProductType_Id),
FOREIGN KEY(ProductType_Id)
REFERENCES ProductType(Id)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
Надеюсь, это поможет.