
ããŒãã«ãphpMyAdminãïŒWeb GUIã®èªã¿åãïŒãå¿ èŠã§ã
å ±éã®DBMSã管çããããã®ãŠãããŒãµã«Webã€ã³ã¿ãŒãã§ãŒã¹ããªãããã Node.jsã®éçºãå€å°è€éã«ãªããé£ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã§å¥ã®WebãµãŒããŒãšå¥ã®èšèªããããã€ããããšã¯æ°ã«ãªããŸããã å¥ã®ãµãŒããŒãŸãã¯è·å Žã®ã³ã³ãã¥ãŒã¿ãŒããæ¥ç¶ããŠããŒããéããŠããŒã¿ããŒã¹ã管çããã®ã¯äžäŸ¿ã§ãããã»ãã¥ãªãã£äžã®èæ ®äºé ããããŸãã ãã®ããããã®ãããªããŒã«ãWebã¢ããªã±ãŒã·ã§ã³Impressã®ãã©ãããã©ãŒã ã«å«ããããšã«ããŸãããImpressã¯çºè¡šãããŸããã ãããã«ã€ããŠã¯å°ãæžããŠããããªãŒãã³ãœãŒã¹ã§äžè¬åãã«å©çšã§ããŸãã ããã¯ãNode.jsãšçµã¿åãããŠäœ¿çšââãããããšãå€ãDBMSçšã®ã·ã³ãã«ã§äŸ¿å©ãªçµ±åã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããè¿ éãªå±éïŒãã©ã«ããŒãã³ããŒããã ãïŒãšç°å¢ããã®ç¬ç«ãå®çŸãããšããèãæ¹ã§ãã ããŒã¿çã¯ãã§ã«MySQL ã MongoDBããµããŒãããŠããããŸããªãPostgreSQLãšOracleã«ãã¥ãŒãå±ããŸã ã
DBMIæ©èœ
ããŒã¿ããŒã¹ã䜿çšãããã¹ãŠã®æäœã«å¯ŸããŠãè¶³å Žã䜿çšãããŸãã ããŒã¿ããŒã¹æ§é ã«é¢ããã¡ã¿ããŒã¿ã®åçãªåä¿¡ãŸãã¯DBMSæ§é ã®ã€ã³ããã¹ãã¯ã·ã§ã³ã«åºã¥ããã€ã³ã¿ãŒãã§ãŒã¹ãã¯ãšãªãããã³ãã¹ãŠã®ããŒã¿åŠçæäœã®æ§ç¯ã 以äžã®å³ã«ãã€ã³ã¿ãŒãã§ãŒã¹ã瀺ããŸãã ããªãŒã¯3ã¬ãã«ã§ãæåã®ã¬ãã«ã¯ããŒã¿ããŒã¹æ¥ç¶ïŒãã¡ããã2ã€ã®ã¿ã€ãã§ãïŒã2çªç®ã®ã¬ãã«ã¯ããŒã¿ããŒã¹ã3çªç®ã®ã¬ãã«ã¯ã³ã¬ã¯ã·ã§ã³ïŒMongoã®å ŽåïŒãããŒãã«ïŒMySQLã®å ŽåïŒã§ãã ããªãŒã®ããŒãã§ãããŠã¹ã®å³ãã¿ã³ã§ã³ã³ããã¹ãã¡ãã¥ãŒãåŒã³åºãããšãã§ããŸãã

æ©èœã¯æ¬¡ã®ãšããã§ãã
- ããŒãã«ãšã³ã¬ã¯ã·ã§ã³ã衚瀺ããŸãã ããã¯MySQLã®èªç¶ãªç·šéæ¹æ³ã§ãããMongoDBã§ã¯ã°ãªããã䜿çšããŸãããåã¯ã³ã¬ã¯ã·ã§ã³å ã®ãã¹ãŠã®ã¬ã³ãŒãããåéããããã£ãŒã«ãã§ãããã®ãããªç·šéã¯JSONãããªãŒãããããã£ã€ã³ã¹ãã¯ã¿ãŒãç·šéããããã䟿å©ã ãšæããŸãã
- ãã£ãŒã«ãã§ãã£ã«ã¿ãŒããŸãã ã°ãªããã®èŠåºãã«ãã£ã«ã¿ãŒã®è¡ããããŸããMongoDBã®å Žåã¯å³å¯ãªäžèŽã«ãã£ãŠã®ã¿æ©èœããMySQLã®å Žåã¯å®å šãªäžèŽã«å ããŠããã£ã«ã¿ãŒæ¡ä»¶ã®æ§æããããŸããåŒçšç¬Šãªãã§å ¥åããŸããã€ãŸã ã5ã«çãããªããã¯ã<> 5ããç¯å²ã5..10ããšããŠæžã蟌ãŸããŸã-BETWEENã«å€æãããæåã*ãã®ãã¿ãŒã³ïŒç©ºã®ã·ãŒã±ã³ã¹ã§ãSQL LIKEåŒã§ã¯ãïŒ ãã«å€æãããŸãïŒ ãïŒã ïŒSQL LIKEåŒã§ä»»æã®æåãã_ãã«å€æããå¿ èŠããããŸãïŒãããšãã°ãã* strïŒã ïŒãã®ãããªæåã¯ãŠãŒã¶ãŒã«ãšã£ãŠãã銎æã¿ã®ãããã®ã§ãïŒãã»ãããïŒ1,2,4,10,11ïŒãã®1ã€ã®å€ãSQL INåŒã«å€æãããŸãã
- ã¬ã³ãŒããæ¿å ¥ããŸãã ãããŸã§ã®ãšããMySQLã§ã®ã¿æ©èœããŸãã ã°ãªããã®æåŸã®ç©ºè¡ãæ¿å ¥ã«äœ¿çšãããŸãã1ã€ã®ãã£ãŒã«ããç·šéããåŸããã§ã«INSERTãå®è¡ã§ããã¬ã³ãŒããããã«è¿œå ããããã®IDãPRIMARY KEYã®åã«è¡šç€ºãããUPDATEãä»ããŠããã«ç·šéãè¡ãããŸããããNOT NULLãå¶éã«è€æ°ãå¿ èŠãªå Žåå¿ èŠãªãã£ãŒã«ãããã¹ãŠå ¥åãããåŸã«ã®ã¿INSERTãçºçããŸãïŒã
- ããŒãã«ãšã³ã¬ã¯ã·ã§ã³å ã®ã¬ã³ãŒãã®ç·šé ïŒåžžã«Mongoã§æ©èœããŸãããMySQLã®å Žåãã³ã³ããžããäž»ããŒãã€ãŸãã¬ã³ãŒãIDããªãå Žåã«ã®ã¿ãåŸã§ã³ã³ããžããäž»ããŒãã³ã³ããžããããã³éã³ã³ããžããã®ãŠããŒã¯ã€ã³ããã¯ã¹ããµããŒããããŸãããããäœãèŠã€ãããªãã£ããããUPDATEã¹ããŒãã¡ã³ãã®WHEREã«ãç·šéäžã®ã¬ã³ãŒãã®ãã¹ãŠã®ãã£ãŒã«ããé 眮ããŸãã
- ããŒãã«ããã³ã³ã¬ã¯ã·ã§ã³ããã¬ã³ãŒããåé€ããŸã ã ããã¯Mongoã§æ©èœããŸãããMySQLã§ã¯éã³ã³ããžããPRIMARY KEYã§ãæ©èœããŸãã
- ãã°SQLã¹ããŒãã¡ã³ãã åœç¶ããªã¬ãŒã·ã§ãã«DBMSã§ã®ã¿ãµããŒããããŸãã ãããããMongoDBã®å Žåããããžã§ã¯ãã«ã³ããŒããŠè²Œãä»ããããã®ã³ãŒããJavaScriptãã°ã«åºåããŸãã
- ããŒã¿ããŒã¹ã®äœæãšåé€ã MySQLã§ãæ©èœããŸãããMongoã«ã¯æ©èœããããŸããããŒã¿ããŒã¹ã¯ãå°ãªããšã1ã€ã®ã³ã¬ã¯ã·ã§ã³ãããã«äœæããå Žåã«ã®ã¿äœæãããŸããããããªããšãç»é¢ãæŽæ°ããããšããŒã¿ããŒã¹ãæ¶ããŸãããããã¯DBMSæ©èœã§ãã ã
- ããŒã¿ããŒã¹ã®ååãå€æŽããŸãã Mongoã®ããã«æ©èœããŸãããMySQLã§ã¯ãŸã æ©èœããŸããããåãã®ããã«ãRENAME DATABASEãMySQLã«å°å ¥ãããŠåé€ãããããŒã¿ããŒã¹ã®ååãå€æŽããã«ã¯æ°ããååã§æ°ããããŒã¿ããŒã¹ãäœæããããã«ãã¹ãŠã®ããŒãã«ãã³ããŒããŠãããŠãŒã¶ãŒãšã¢ã¯ã»ã¹æš©ãã³ããŒããå¿ èŠãããããã§ããããããä»ã®ããã€ãã®ããšãèæ ®ããå¿ èŠããããŸãããä»ã®ãšããå°éããŠããŸããã
- ã³ã¬ã¯ã·ã§ã³ãšããŒãã«ã®äœæã ãããŸã§ã®ãšãããMongoã§ã®ã¿æ©èœããŸããããŸããªãMySQLã®ããŒãã«ãã¶ã€ããŒãè¿œå ããŸãã
- ã³ã¬ã¯ã·ã§ã³ãšããŒãã«ãåé€ããŸãã MySQLãšMongoã®äž¡æ¹ã§æ©èœããŸãããããŒãã«éã®æ¥ç¶ïŒFOREIGN KEYSïŒã¯MySQLã§ã®åé€ãé²ãããšãã§ããŸãããã®å Žåãåé€ã¯å€±æããããŒãã«ã¯ããªãŒã«å衚瀺ãããŸãã
- ã³ã¬ã¯ã·ã§ã³ãšããŒãã«ã®ååãå€æŽããŸãã MySQLãšMongoã®äž¡æ¹ã§æ©èœããŸãã
ã€ã³ã¹ããŒã«ãšã»ããã¢ãã
å®å šãªã»ããã¢ããæé ã¯æ¬¡ã®ãšããã§ãïŒããã¯ã»ãã¥ãªãã£ã®ããã§ãããã»ãšãã©ã®å Žåãå€§å¹ ã«åæžãããŸãïŒã
1.ãããžã§ã¯ããã£ã¬ã¯ããªãäœæãã npmãªããžããªããImpressãã€ã³ã¹ããŒã«ããŸãã
$ npm install impress
2.ãã©ã«ããŒ/ node_modules / impress / examples / copyContentToProjectFolderãããã¹ãŠã®ã³ã³ãã³ãããããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªã«ã³ããŒããŸãã
3. config.jsãã¡ã€ã«ã§ããdatabasesãã»ã¯ã·ã§ã³ã§å¿ èŠãªããŒã¿ããŒã¹ïŒãšã³ããã€ã³ãã®æåååïŒãæå®ããŸãã
4. /sites/localhost/dbmi/access.jsãã¡ã€ã«ã«ã¢ã¯ã»ã¹èšå®ããããŸã
module.exports = { guests: true, // logged: true, // http: true, // http https: true, // https groups: [] // ( ) }
5.ãã¹ã¯ãŒãã§ç®¡çããã«ãéããã«ã¯ããnode setup.jsãã³ãã³ãã䜿çšããŠãŠãŒã¶ãŒããŒã¿ããŒã¹ãäœæããå¿ èŠããããŸãã ãããŠããnode server.jsãã·ã¹ãã ãèµ·åããŸãã 127.0.0.1ã«ç§»åããŠç»é²ããŸãïŒå³äžã®[ã¢ã«ãŠã³ãã®äœæ]ïŒã ãã®åŸã/ sites / localhost / api / auth / register.jsonã«access.jsãã¡ã€ã«ãè¿œå ããguests = falseãèšå®ããããšã«ãããç»é²æ©èœãéããããšãã§ããŸãã
6. HTTPSçµç±ã§ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããå Žåã¯ãserver.keyãã¡ã€ã«ãšserver.cerãã¡ã€ã«ããããžã§ã¯ãã®ã«ãŒãã«é 眮ããconfig.jsã®ãã©ã¡ãŒã¿ãŒservers.www.protocol = "https"ã調æŽããŸãã
7.ããŠã 127.0.0.1 / dbmiãŸãã¯127.0.0.1ãééããå·ŠåŽã®ã¡ãã¥ãŒã§ãäŸã®å±éºæ§ãã¢ã€ãã ãDB Management InterfaceããéžæããŸãã
DBMIéçºèšç»
çŸåšãDBMIã¢ãžã¥ãŒã«å šäœã70kbãå ããŠããŸãããã®ååã¯cssãšhtmlã§æ§æãããçŽ4åã®1ã¯ãµãŒããŒåŽã®jsããã1ã€ã®ååæã¯ã¯ã©ã€ã¢ã³ãåŽã§ãã äœããä¿®æ£ãŸãã¯è¿œå ãããå Žåãã³ãŒããç解ããããšã¯ããã»ã©éèŠã§ã¯ãªããšæããŸãã ãŸãããµã€ãºãå°ããã®ã¯ãïŒåœç€Ÿã®ïŒImpressãã©ãããã©ãŒã ããURLã®ã«ãŒãã£ã³ã°ããã³ãã¬ãŒãã®åŠçãããŒã¿ããŒã¹ãç¹ã«MySQLïŒ ããŒã¿ã¢ã¯ã»ã¹ æ¹æ³ ã ã¡ãœããïŒãæäœããããã®èšå€§ãªæ°ã®è£å©æ©èœãªã©ãã»ãšãã©ã®ã€ã³ãã©ã¹ãã©ã¯ãã£äœæ¥ãè¡ãããã§ãã€ã³ããã¹ãã¯ã·ã§ã³ ã ã¯ãšãªçæã¡ãœãããªã©ïŒã è¿ãå°æ¥ã«è¿œå ããäºå®ã®ãã®ïŒ
- ä»»æã®SQLã¯ãšãªã®å®è¡ã å«ã CREATE TABLEãDROP ...ãALTER ...ãªã© ãããã®ã¯ãšãªã®å±¥æŽãä¿åããå°æ¥ã¯ãšãªã¯ãšãªãåŒã³åºãã
- ããªãŒã®ç¬¬4ã¬ãã«ã®ååä»ãããŒããšããŠã°ãªããã«ãã£ã«ã¿ãŒãä¿åããŸãã ãŸããæå®ããååã§ä¿åã§ããã«ã¹ã¿ã SQLã¯ãšãªãèšè¿°ããããšã¯ãããªãŒã®4çªç®ã®ã¬ãã«ã®ããã§ããããã®çµæã®æäœãåãã°ãªããå ã«ãããŸãã
- ããŒãã«éã®ãªã¬ãŒã·ã§ã³ãä»ããç§»è¡ ïŒã芪ãããŒãã«ãŸãã¯ãåããžã®ç§»è¡ïŒ1察å€ã®é¢ä¿ïŒã
- è¶³å Žãšåæ§ã«ãã°ãªãããšåæ§ã«ãã¬ã³ãŒããç·šéããã³è²Œãä»ããããã®ãã©ãŒã ã®çæ ã
- IDã§ã¯ãªãã ãã£ã¬ã¯ããªããã®å€ã®è¡šç€º ã ãŸããããã«å¿ããŠãããããããŠã³ãªã¹ãã®äœ¿çšãç·šéããŠãã£ã¬ã¯ããªã衚瀺ããå Žåã
- JSONã¡ã¿èšè¿°ããããŒãã«ãçæããŸã ã/node_modules / impress / schemasã®äŸãåç §ããŠãã ããã çæã¯ãã§ã«æ©èœããŠããŸããããŸã DBMIã«æ¥ç¶ãããŠããªãããã次ãå®è¡ããŠçæã®çµæã確èªã§ããŸãã
require('impress'); var schemaCore = require('./schemas/impress.core.schema.js'), schemaCMS = require('./schemas/impress.cms.schema.js'); impress.init(function() { console.log(db.schema.mysql.generateScript(schemaCore, true).script); console.log(db.schema.mysql.generateScript(schemaCMS, true).script); });
ããã¯è³¢ãåããŸãããããªãã¯èª°ããå¿ èŠãšããã§ããã°ããéããã®ãå¿ èŠã§ãã ã ããããã¹ããšæ¹è¯ã«åå ããŠãç§ãã¡ã¯ããªãã®åå ã«åãã§ããã§ãããã
UPDïŒãšãã£ã¿ãŒã«å ¥åãããSQLã³ãŒãïŒãã³ãã³ããã¿ãïŒãå®è¡ããçµæãšå®è¡ãšã©ãŒããã°ïŒããã°ãã¿ãïŒã«åºåããæ©èœãè¿œå ããŸããã