I did answer my own question, and that's why I said: > That being said, the point of this post is to ask -- Is MySQL working > on allowing the SET limit to increase? Or is that just too much > storage and math?
Using a SET is, I believe, MUCH faster than making a special table simply to normalize the data. I believe in using MySQL's functionality to the fullest, and working smarter, not harder. Would folks use SET to help normalize their data instead of using a separate table? Should I put in a request for the feature I want? Or would very few folks benefit, and it would add too much storage and computational cost? (my original question) -Sheeri On 11/28/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > You, yourself, explain why your suggestion would be a bad fit for this > project: SET is limited to just 64 discrete values per table. > > I cannot remember reading that increasing the size of the SET features as a > priority on any development list. I might have missed something but I don't > think that SET>64 will be coming any time soon. > > Shawn Green > Database Administrator > Unimin Corporation - Spruce Pine > > sheeri kritzer <[EMAIL PROTECTED]> wrote on 11/28/2005 09:53:49 AM: > > > On this note, I feel as though the best way to do this in MySQL is to > > use the ENUM or SET types, instead of indexing against a separate > > table -- I'm guessing SET, so each piece of clipart can be associated > > with more than one category. Of course, that eliminates relevancy > > searches (which you could do as in the first example given by the OP, > > with a text field and fulltext search). > > > > I think the biggest problem with that is that SET only allows up to 64 > > different items, so the clipart site could only have up to 64 > > categories (and a Christmas floral arrangement might have the keywords > > "color", "flowers" and "Christmas"). > > > > That being said, the point of this post is to ask -- Is MySQL working > > on allowing the SET limit to increase? Or is that just too much > > storage and math? > > > > -Sheeri > > > > On 11/25/05, Johan <[EMAIL PROTECTED]> wrote: > > > Hi Robb, > > > > > > Your table setup is correct. In the third table the two ID fields > together > > > form the Primary Key. This makes sure that you cannot add the same > keyword > > > twice to the same image. If you use MySQL Administrator to create your > > > tables then you just add both columns to the primary key index. > > > Programmatically it would look something like (to create the tabloe and > > > indexes): > > > > > > CREATE TABLE "ClipartKeyword" ( > > > "ClipartID" INT(11) NOT NULL, > > > "KeywordID" INT(11) NOT NULL, > > > PRIMARY KEY ("ClipartID","KeywordID"), > > > INDEX ("KeywordID") > > > ) TYPE=InnoDB; > > > > > > This database uses ANSI, hence the quotes around the field names. The > index > > > on KeywordID makes it easy to find all images that have a certain > keyword > > > attached to it. > > > > > > Good luck, > > > > > > Johan > > > > > > On 11/25/05, Robb Kerr <[EMAIL PROTECTED]> wrote: > > > > > > > > On Fri, 25 Nov 2005 10:44:44 -0800, Johan wrote: > > > > > > > > >> Option One > > > > >> Related tables. Table one (clipart pieces) contains ClipartID and > > > > >> ClipartName fields. Table two (keywords) contains KeywordID, > ClipartID > > > > and > > > > >> Keyword fields. This option will create an incredibly large > related > > > > table > > > > >> (keywords) with each piece of clipart having tens of related > fields in > > > > the > > > > >> keyword table. But, searching ought to be fast. > > > > > > > > > > > > > > > Use this option but use a third table that contains just ClipartID > and > > > > > KeywordID to create the m:n relationship. Like this: > > > > > > > > > > Clipart: ClipartID (primary key) & Clipartname > > > > > Keywords: KeywordID (primary key) & Keyword (just one so must be > unique) > > > > > Linktable: ClipartID & KeywordID (ClipartID + KeywordID = primary > key) > > > > > > > > > > I have a database like this with over 250,000 images, 50,000+ > keywords > > > > and > > > > > more than 2 million image - keyword links. All my keyword searches > are > > > > very > > > > > fast (under 0.05 seconds per query). > > > > > > > > > > This is on very mediocre hardware (AMD Sempron 2600+ with only > 512Mb of > > > > > memory) so performance on a faster computer with more memory should > be > > > > > excellent. > > > > > > > > > > HTH, > > > > > > > > > > Johan > > > > > > > > Please explain further your 3 table scenario. Is the following > example > > > > correct... > > > > > > > > Table One - Clipart > > > > ClipartID (primary key) | ClipartName > > > > 1 | artone.jpg > > > > 2 | arttwo.jpg > > > > 3 | artthree.jpg > > > > > > > > Table Two - Keywords > > > > KeywordID (primary key) | Keyword > > > > 1 | black and white > > > > 2 | color > > > > 3 | christmas > > > > 4 | thanksgiving > > > > > > > > Table Three - LinkTable > > > > ClipartID | KeywordID > > > > 1 | 1 > > > > 1 | 3 > > > > 2 | 2 > > > > 2 | 3 > > > > > > > > I don't understand what would be the primary key for the third table > or > > > > what you mean by "(ClipartID + KeywordID = primary key)". Please > > > > elaborate. > > > > > > > > Thanx, > > > > Robb > > > > > > > > -- > > > > MySQL General Mailing List > > > > For list archives: http://lists.mysql.com/mysql > > > > To unsubscribe: > http://lists.mysql.com/[EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > -- > > MySQL General Mailing List > > For list archives: http://lists.mysql.com/mysql > > To unsubscribe: > http://lists.mysql.com/[EMAIL PROTECTED] > > > -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]