Bruno, Interesting emails. You might consider talking to Arjen Lentz about his special hierarchical-storage magic. It's still in development, but ... well, I'll let you talk with him about it.
Best, Baron On Tue, Apr 29, 2008 at 2:12 PM, Bruno B B Magalhães <[EMAIL PROTECTED]> wrote: > Just correcting my self, > > The hierarchical storage theory is "nested set model", and not > "transverse". And also I know that oracle 10g has a hierarchical query, but > I am more interested on pure SQL2 theories and solutions. And also, SHOULD > (or could) MySQL have some type or recursive query? For example: > > SELECT RECURSIVE * > FROM ProductsCategories > USING ProductCategoryParentID = ProductCategoryID > > Is this syntax factive? > > Best regards, > > Bruno B. B. Magalhães > > BLACKBEAN CONSULTORIA > Rua Real Grandeza 193/210, Botafogo > Rio de Janeiro, RJ, 22281-035, Brasil > > +55 (21) 9996-1093 > +55 (21) 2266-0597 > www.blackbean.com.br > > Esta mensagem pode conter informação confidencial e/ou privilegiada. Se > você não for o destinatário ou a pessoa autorizada a receber esta mensagem, > não pode usar, copiar ou divulgar as informações nela contidas ou tomar > qualquer ação baseada nessas informações. Se você recebeu esta mensagem por > engano, por favor avise imediatamente o remetente, respondendo o e-mail e em > seguida apague-o. Agradecemos sua cooperação. > > This message may contain confidential and/or privileged information. If you > are not the addressee or authorized to receive this for the addressee, you > must not use, copy, disclose or take any action based on this message or any > information herein. If you have received this message in error, please > advise the sender immediately by reply e-mail and delete this message. Thank > you for your cooperation. > > > On Apr 29, 2008, at 1:21 PM, Bruno B B Magalhães wrote: > > > > > > > > > > Hi everybody, > > > > I would like to discuss there hierarchical storage theory. Currently I > have came across 2 types for storing hierarchical data (yes, I´ve read the > article at mysql.com, and MANY others sites), but I would like to know your > option about the day-to-day usage... I mean I´ve only used hierarchy for > some small to medium projects, but I now I am planning a big account project > (yes, I´ve researched many open-source solutions, but none was suitable for > an enterprise level solution), and if someone has already walked this > path... Well, I would like to share and discuss... How Oracle, SAP and > Microsoft Dynamics did? Some one has some insight? ow they manage to store > UNSPSC taxonomy data on their systems? > > > > Here is a table using parent and child relationship: > > > > CREATE TABLE `CatalogsCategories` ( > > `CustomerID` int(8) unsigned NOT NULL default '0', > > `CatalogID` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryParentID` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryID` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryCode` varchar(20) NOT NULL default '', > > `CatalogCategoryName` varchar(200) NOT NULL default '', > > `CatalogCategoryDescription` text character set latin1 NOT NULL, > > `CatalogCategoryActive` int(1) unsigned NOT NULL default '0', > > `CatalogCategoryCreatedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryCreatedOn` int(20) unsigned NOT NULL default '0', > > `CatalogCategoryModifiedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryModifiedOn` int(20) unsigned NOT NULL default '0', > > `CatalogCategoryRemovedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryRemovedOn` int(20) unsigned NOT NULL default '0', > > KEY `CatalogsCategoriesIndexA` > (`CustomerID`,`CatalogID`,`CatalogCategoryParentID > `,`CatalogCategoryID`,`CatalogCategoryActive`), > > KEY `CatalogsCategoriesIndexB` > (`CatalogCategoryCreatedBy`,`CatalogCategoryModifiedBy`,`CatalogCategoryRemovedBy`), > > KEY `CatalogsCategoriesIndexC` > (`CatalogCategoryCreatedOn`,`CatalogCategoryModifiedOn`,`CatalogCategoryRemovedOn`) > > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 > > > > Pros: Easy to understand and implement the operating clas es, not export / > inport friendly > > Cons: Recursive behavior, not suited for reports generation because of the > recursivity > > > > > > Here is a table using transverse relationship: > > > > CREATE TABLE `CatalogsCategories` ( > > `CustomerID` int(8) unsigned NOT NULL default '0', > > `CatalogID` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryID` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryLeftPosition` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryRightPosition` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryCode` varchar(20) NOT NULL default '', > > `CatalogCategoryName` varchar(200) NOT NULL default '', > > `CatalogCategoryDescription` text character set latin1 NOT NULL, > > `CatalogCategoryActive` int(1) unsigned NOT NULL default '0', > > `CatalogCategoryCreatedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryCreatedOn` int(20) unsigned NOT NULL default '0', > > `CatalogCategoryModifiedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryModifiedOn` int(20) unsigned NOT NULL default '0', > > `CatalogCategoryRemovedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryRemovedOn` int(20) unsigned NOT NULL default '0', > > KEY `CatalogsCategoriesIndexA` > (`CustomerID`,`CatalogID`,`CatalogCategoryID`,`CatalogCategoryActive`), > > KEY `CatalogsCategoriesIndexB` > (`CatalogCategoryLeftPosition`,`CatalogCategoryRightPosition`), > > KEY `CatalogsCategoriesIndexC` > (`CatalogCategoryCreatedBy`,`CatalogCategoryModifiedBy`,`CatalogCategoryRemovedBy`), > > KEY `CatalogsCategoriesIndexD` > (`CatalogCategoryCreatedOn`,`CatalogCategoryModifiedOn`,`CatalogCategoryRemovedOn`) > > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 > > > > Pros: SQL friendly so much less processing and queries required, not > export / inport friendly > > Coms: Not that easy to understand or implement the operating classes > > > > Here is a table using UNSPSC like relationship: > > > > CREATE TABLE `CatalogsCategories` ( > > `CustomerID` int(8) unsigned NOT NULL default '0', > > `CatalogID` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryID` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryLevel1` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryLevel2` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryLevel3` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryLevel4` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryCode` varchar(20) NOT NULL default '', > > `CatalogCategoryName` varchar(200) NOT NULL default '', > > `CatalogCategoryDescription` text character set latin1 NOT NULL, > > `CatalogCategoryActive` int(1) unsigned NOT NULL default '0', > > `CatalogCategoryCreatedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryCreatedOn` int(20) unsigned NOT NULL default '0', > > `CatalogCategoryModifiedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryModifiedOn` int(20) unsigned NOT NULL default '0', > > `CatalogCategoryRemovedBy` int(8) unsigned NOT NULL default '0', > > `CatalogCategoryRemovedOn` int(20) unsigned NOT NULL default '0', > > KEY `CatalogsCategoriesIndexA` > (`CustomerID`,`CatalogID`,`CatalogCategoryID`,`CatalogCategoryActive`), > > KEY `CatalogsCategoriesIndexB` > (`CatalogCategoryLevel1`,`CatalogCategoryLevel2`,`CatalogCategoryLevel3`,`CatalogCategoryLevel4`), > > KEY `CatalogsCategoriesIndexC` > (`CatalogCategoryCreatedBy`,`CatalogCategoryModifiedBy`,`CatalogCategoryRemovedBy`), > > KEY `CatalogsCategoriesIndexD` > (`CatalogCategoryCreatedOn`,`CatalogCategoryModifiedOn`,`CatalogCategoryRemovedOn`) > > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 > > > > Pros: SQL friendly so much less processing and queries required, very > export / inport friendly > > Cons: Fixed deep and a little bit more difficult to implement the > operating classes than parent/child relationships > > > > I would like very much to hear your opinions! > > > > Best regards to you all, > > Bruno B. B. Magalhães > > > > BLACKBEAN CONSULTORIA > > Rua Real Grandeza 193/210, Botafogo > > Rio de Janeiro, RJ, 22281-035, Brasil > > > > +55 (21) 9996-1093 > > +55 (21) 2266-0597 > > www.blackbean.com.br > > > > Esta mensagem pode conter informação confidencial e/ou privilegiada. Se > você não for o destinatário ou a pessoa autorizada a receber esta mensagem, > não pode usar, copiar ou divulgar as informações nela contidas ou tomar > qualquer ação baseada nessas informações. Se você recebeu esta mensagem por > engano, por favor avise imediatamente o remetente, respondendo o e-mail e em > seguida apague-o. Agradecemos sua cooperação. > > > > This message may contain confidential and/or privileged information. If > you are not the addressee or authorized to receive this for the addressee, > you must not use, copy, disclose or take any action based on this message or > any information herein. If you have received this message in error, please > advise the sender immediately by reply e-mail and delete this message. Thank > you for your cooperation. > > > > > > -- > > 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] > > -- Baron Schwartz, Senior Consultant, Percona Inc. Tel: +1 888 401 3401 ext 507 24/7 Emergency Line +1 888 401 3401 ext 911 Our Services: http://www.percona.com/services.html Our Blog: http://www.mysqlperformanceblog.com/ -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]