EDIT: MySQL hinzugefügt unten Antwort
Die Datenbankdesign Sie zitieren haftet nicht an der ersten Normalform (1NF).
Es wäre besser für Sie, wenn Sie Ihre Datenbank in mehrere Tabellen mit einer Tabelle Typ aufteilen. Dies würde eine relationale Datenbank erzeugen, die keine Duplizierung hat, und die IDs würden nicht kollidieren, wenn ein Benutzerfehler auftritt.
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)
Sie können jetzt Ihre Arten in die Typ-Tabelle (Hemd, Hose, Schuhe, etc.) einsetzen und jedes Element mit ihrem relavent Typ zuordnen.
Hier ist eine Wikipedia-Seite auf dem ersten Normalform, etwas, das Sie sollten in jedem Datenbank-Design zu haften versuchen: http://en.wikipedia.org/wiki/First_normal_form
Hier ist MySQL Version meines Vorschlags:
HINWEIS DIESER IN WORKS 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);
Hoffnung, das hilft.
Warum können Sie nicht die IDs als 1,2,3,4 setzen, ... Ihre Daten sind in verschiedene Tabellen, damit Sie keine Kollisionen haben. Ich verstehe nicht, was das Problem ist. – davidk01
Wenn ich eine Textsuche mache, (Name, Beschreibung, Herstellung, Material, ID aus Hemden, Hosen, Schuhe) gibt es zurück: Spalte 'ID' in der Feldliste ist mehrdeutig. Ich teste das auf WAMP. – stockoverflow
Siehe meine Antwort unten, eine ID, die für mehrere Typen verwendet wird, ist schlechtes Design, und könnte Sie in Probleme führen. – Greg