åçæã«èããã¹ããŒãé²åãšäºæž¬å¯èœãªãã€ã°ã¬ãŒã·ã§ã³
ããã¯ãšã³ããåçæããŠãæ¬çªããŒã¿ãå®å šã«ä¿ã€ããã®ã¹ããŒãé²åã®å®è·µãã¹ããŒã倿Žãšãã€ã°ã¬ãŒã·ã§ã³ãèšç»ããå®çšçãªææ³ãåŠã³ãŸãã

åçæãããããã¯ãšã³ãã§ã¹ããŒã倿Žãæãæããçç±
èŠèŠçãªã¢ãã«ããããã¯ãšã³ããåçæããå ŽåãããŒã¿ããŒã¹ã®å€æŽã¯ã»ãŒã¿ãŒã®ç³žãåŒã£åŒµãããã«æããããŸããData Designer ã§ãã£ãŒã«ããæŽæ°ããŠåçæãã¯ãªãã¯ãããšãåã«ããŒãã«ãå€ããã ãã§ãªããçæããã APIãããªããŒã·ã§ã³ã«ãŒã«ãã¢ããªãããŒã¿ã®èªã¿æžãã«äœ¿ãã¯ãšãªãŸã§å€ããããšããããŸãã
äžè¬çã«åé¡ã«ãªãã®ã¯æ°ããã³ãŒãããã«ãã§ããªãããšã§ã¯ãããŸãããå€ãã®ããŒã³ãŒããã©ãããã©ãŒã ïŒAppMaster ã®ããã«æ¬ç©ã® Go ã³ãŒããçæãããã®ãå«ãïŒã¯ãããããªãããžã§ã¯ããæ¯åçæã§ããŸããæ¬åœã®ãªã¹ã¯ã¯æ¬çªã«æ¢ã«ããŒã¿ãååšããŠããŠããã®ããŒã¿ãèªåçã«ããªãã®æ°ããèšèšã«åãããŠå€åœ¢ããŠãããªãç¹ã§ãã
æåã«ç®ã«ããäºã€ã®å€±æã¯ã·ã³ãã«ã§ãã
- èªã¿åãã®ç Žå£ïŒã«ã©ã ãç§»åãããåãå€ãã£ãããã¯ãšãªãååšããªãå€ãæåŸ ããããã«ã¢ããªãã¬ã³ãŒããèªã¿èŸŒããªããªãã
- æžã蟌ã¿ã®ç Žå£ïŒå¶çŽãå¿ é ãã£ãŒã«ãããã©ãŒããããå€ãããæ¢åã¯ã©ã€ã¢ã³ããå€ã圢ã§éä¿¡ãç¶ããããã«æ°èŠãæŽæ°ã®ã¬ã³ãŒãã倱æããã
ã©ã¡ãããŠãŒã¶ãŒãå®éã«è§ŠãããŸã§é ããããšããããçæã«ãªããŸããã¹ããŒãžã³ã°ã®ããŒã¿ããŒã¹ã¯ç©ºãæ°ããã·ãŒããããç¶æ ãããããŸããããæ¬çªã«ã¯ãã«ãå€ã enum æååãã«ãŒã«å°å ¥åã«äœãããè¡ãªã©ã®ãšããžã±ãŒã¹ããããŸãã
ã ãããããåçæã«èããã¹ããŒãé²åãéèŠã§ããç®æšã¯ãããã¯ãšã³ãã®ã³ãŒããå®å šã«åçæãããŠãå倿Žãå®å šã§ãããå€ãã¬ã³ãŒããæå¹ã§ããç¶ããæ°ããã¬ã³ãŒããäœæã§ããããã«ããããšã§ãã
ãäºæž¬å¯èœãªãã€ã°ã¬ãŒã·ã§ã³ããšã¯ããããã€åã«æ¬¡ã®åã€ã®è³ªåã«çããããããšãæå³ããŸãïŒããŒã¿ããŒã¹ã§äœãå€ããããæ¢åã®è¡ã«äœãèµ·ããããããŒã«ã¢ãŠãäžã«ã©ã®ããŒãžã§ã³ã®ã¢ããªãåãããããããŠäºæãã¬ããšãèµ·ãããšãã«ã©ãããŒã«ããã¯ãããã
ã·ã³ãã«ãªã¢ãã«ïŒã¹ããŒãããã€ã°ã¬ãŒã·ã§ã³ãåçæãããã³ãŒã
ãã©ãããã©ãŒã ãããã¯ãšã³ããåçæã§ããå Žåãé ã®äžã§äžã€ã®ãã®ãåããŠèãããšå©ãã«ãªããŸãïŒããŒã¿ããŒã¹ã¹ããŒããã¹ããŒãã倿Žãããã€ã°ã¬ãŒã·ã§ã³æé ããããŠæ¬çªã«æ¢ã«ããå®ããŒã¿ãããããæ··åãããšå€æŽãäºæž¬ã§ããªããªããŸãã
åçæããææ°ã¢ãã«ããã¢ããªã±ãŒã·ã§ã³ã³ãŒããåæ§ç¯ããããšããšèããŠãã ãããAppMaster ã®ãããªããŒã«ã§ã¯ããã®åæ§ç¯ã¯éåžžã®äœæ¥äžã«äœåºŠãèµ·ãããŸãïŒãã£ãŒã«ãã調æŽããããžãã¹ããžãã¯ã倿Žãããšã³ããã€ã³ãã远å ããŠåçæãããã¹ãããç¹°ãè¿ããåçæã¯é »ç¹ã§ããããªãã®æ¬çªããŒã¿ããŒã¹ã¯ããã§ãã£ãŠã¯ãããŸããã
ã·ã³ãã«ãªã¢ãã«ã¯æ¬¡ã®éãã§ãã
- ã¹ããŒãïŒããŒãã«ãã«ã©ã ãã€ã³ããã¯ã¹ãå¶çŽã®æ§é ãããŒã¿ããŒã¹ãæåŸ ãããã®ã§ãã
- ãã€ã°ã¬ãŒã·ã§ã³ïŒã¹ããŒããããããŒãžã§ã³ããæ¬¡ãžç§»è¡ããããã®é åºä»ããããåå®è¡å¯èœãªæé ïŒæã«ããŒã¿ã®ç§»åãå«ãïŒãåç°å¢ã§å®è¡ãããã®ã§ãã
- ã©ã³ã¿ã€ã ããŒã¿ïŒãŠãŒã¶ãŒãããã»ã¹ã«ãã£ãŠäœãããå®éã®ã¬ã³ãŒãã倿Žã®ååŸãšéäžã§æå¹ã§ããç¶ããå¿ èŠããããŸãã
åçæãããã³ãŒãã¯ãçŸåšã®ã¹ããŒãã«è©±ãçŸåšã®ã¢ããªããšããŠæ±ãã¹ãã§ãããã€ã°ã¬ãŒã·ã§ã³ã¯ãã¹ããŒããšã©ã³ã¿ã€ã ããŒã¿ãã³ãŒãã®å€æŽã«åãããŠæŽåããç¶ããæ©æž¡ãã§ãã
åçæãç¶æ³ãå€ããçç±
é »ç¹ã«åçæãããšãå€ãã®å°ããªã¹ããŒãç·šéãèªç¶ã«è¡ãããšã«ãªããŸããããèªäœã¯æ®éã®ããšã§ãããªã¹ã¯ãåºãã®ã¯ããããã®ç·šéãåŸæ¹äºæã§ãªãããŒã¿ããŒã¹å€æŽãæå³ãããšãããããã¯ãã€ã°ã¬ãŒã·ã§ã³ã決å®è«çã§ãªããšãã§ãã
å®åçãªç®¡çæ³ã¯ãåçæã«èããã¹ããŒãé²åãå°ããåãæ¶ãå¯èœãªã¹ãããã®ç³»åãšããŠèšç»ããããšã§ããäžåºŠã«å€§ããåãæ¿ããã®ã§ã¯ãªããçæéã ãå€ãã³ãŒããšæ°ããã³ãŒãã®äž¡æ¹ãåããããã«å¶åŸ¡ãããç§»è¡ãè¡ããŸãã
ããšãã°ãã©ã€ã API ã䜿ã£ãŠããã«ã©ã åã倿Žãããå Žåãããã«ååãå€ããªãã§ãã ããããŸãæ°ããã«ã©ã ã远å ããäž¡æ¹ã«æžã蟌ã¿ãæ¢åè¡ãããã¯ãã£ã«ããèªã¿åããæ°ããã«ã©ã ã«åãæ¿ããŠããå€ãã«ã©ã ãåé€ããŸããåã¹ãããã¯ãã¹ããããããäœãåé¡ãèµ·ããŠãããŒã¿ãå£ããã«äžæåæ¢ã§ããŸãã
ãã®æèã¢ãã«ã«ãããåçæãæ¥åžžçã«èµ·ããŠããŠããã€ã°ã¬ãŒã·ã§ã³ã¯äºæž¬å¯èœã«ãªããŸãã
ã¹ããŒã倿Žã®çš®é¡ãšæ¬çªãå£ããã®
ããã¯ãšã³ããææ°ã®ã¹ããŒãããåçæããããšãã³ãŒãã¯éåžžããŒã¿ããŒã¹ãä»ãããã®ã¹ããŒãã«äžèŽããŠãããšä»®å®ããŸããã ããåçæå¯Ÿå¿ã¹ããŒãé²åã¯ãããŒã¿ããŒã¹ã倿Žã§ããããããããããŒã«ã¢ãŠãäžã«å€ãããŒã¿ãå€ããªã¯ãšã¹ããçãæ®ããããã«é¢ãã話ã§ãã
ããã€ãã®å€æŽã¯æ¢åã®è¡ãã¯ãšãªãç¡å¹ã«ããªãããæ¬è³ªçã«å®å šã§ããä»ã®å€æŽã¯ããŒã¿ã®æå³ãå€ããããå®è¡äžã®ã¢ããªããŸã æåŸ ããŠãããã®ãåé€ããŠããŸããããã§æ¬çªé害ãçºçããŸãã
äœãªã¹ã¯ïŒéåžžå®å šãå æ³çïŒ
å æ³çãªå€æŽã¯æ¢åããŒã¿ãšå ±åã§ããããæãåºè·ããããã§ãã
- ãŸã 誰ãäŸåããŠããªãæ°ããããŒãã«ã
- ããã©ã«ãäžèŠã®æ°ãã nullable ã«ã©ã ã
- ãªãã·ã§ã³ãªæ°ãã API ãã£ãŒã«ãã
äŸïŒmiddle_name ã«ã©ã ã users ããŒãã«ã« nullable ã§è¿œå ããã®ã¯éåžžå®å
šã§ããæ¢åè¡ã¯ãã®ãŸãŸæå¹ã§ãåçæãããã³ãŒãã¯ååšããå Žåã«èªã¿åããå€ãè¡ã¯åã« NULL ãæã¡ãŸãã
äžãªã¹ã¯ïŒæå³ãå€ããïŒ
ãããã®å€æŽã¯æè¡çã«ã¯ãåããããšãå€ãã§ãããåäœãå£ããŸããåçæã«ããããªããŒã·ã§ã³ãçæã¢ãã«ãããžãã¹ããžãã¯ã®ä»®å®ãæŽæ°ããããããæ éãªèª¿æŽãå¿ èŠã§ãã
ãªããŒã ã¯å€å
žçãªçœ ã§ãïŒphone ã mobile_phone ã«å€ãããšåçæåŸã®ã³ãŒãã phone ãèªãŸãªããªããæ¬çªã«ã¯ãŸã phone ã«ããŒã¿ãæ®ã£ãŠããããšããããšãèµ·ããŸããåæ§ã«åäœãå€ããïŒäŸ¡æ Œããã«ããã»ã³ãã«ãããªã©ïŒãšãã³ãŒããããŒã¿ã®ã©ã¡ãããå
ã«æŽæ°ãããšèšç®ãå£ããå¯èœæ§ããããŸãã
Enum ãéã端ã§ããåæå€ãçããïŒå€ãåãïŒãšæ¢åè¡ãç¡å¹ã«ãªãããšããããŸããåæãæ¡åŒµããïŒå€ã远å ããïŒæ¹ã¯éåžžå®å šã§ããããã¹ãŠã®ã³ãŒããã¹ãæ°ããå€ã«å¯Ÿå¿ã§ããããšãåæã§ãã
å®åçãªã¢ãããŒãã¯ãæå³ãå€ãã倿Žããæ°ãã远å ããŠãããã¯ãã£ã«ããŠãåãæ¿ããŠãåŸã§åé€ãããæ¹æ³ã§æ±ãããšã§ãã
é«ãªã¹ã¯ïŒç Žå£çïŒ
ç Žå£çãªå€æŽã¯æ¬çªãå³åº§ã«å£ãããšãå€ããç¹ã«ãã©ãããã©ãŒã ãåçæããŠå€ã圢ãæåŸ ããªããªããšèŽåœçã§ãã
ã«ã©ã ãããŒãã«ã®åé€ãnullable ãã not-null ãžã®å€æŽã¯ãå€ãªãã§æ¿å ¥ããããšããç¬éã«æžã蟌ã¿ã倱æããå¯èœæ§ããããŸããããã¹ãŠã®è¡ã«å€ãããã¯ãã ããšæã£ãŠããŠããæ¬¡ã®ãšããžã±ãŒã¹ãããã¯ã°ã©ãŠã³ããžã§ããããã§ãªãããšã蚌æãããããããŸããã
not-null 倿Žãè¡ãå¿ èŠãããå Žåã¯æ®µéçã«è¡ã£ãŠãã ããïŒãŸã nullable ãšããŠè¿œå ããããã¯ãã£ã«ããã¢ããªã®ããžãã¯ãå¿ ãå€ãã»ããããããã«æŽæ°ããŠãã not-null ã匷å¶ããŸãã
ããã©ãŒãã³ã¹ãšå®å šæ§ã®å€æŽïŒæžã蟌ã¿ããããã¯ããå¯èœæ§ïŒ
ã€ã³ããã¯ã¹ãå¶çŽã¯ãããŒã¿åœ¢ç¶ã®å€æŽãã§ã¯ãããŸããããããã§ãããŠã³ã¿ã€ã ãåŒãèµ·ããå¯èœæ§ããããŸãã倧ããªããŒãã«ã§ã€ã³ããã¯ã¹ãäœæãããäžæå¶çŽã远å ããããããšæžã蟌ã¿ãããã¯ããŠã¿ã€ã ã¢ãŠããæãããšããããŸããPostgreSQL ã§ã¯ãªã³ã©ã€ã³ãã¬ã³ããªãŒãªæ¹æ³ã§å®å šã«è¡ããå ŽåããããŸãããéèŠãªã®ã¯ã¿ã€ãã³ã°ã§ãïŒè² è·ã®äœãæéã«éãæäœãè¡ããã¹ããŒãžã³ã°ã®ã³ããŒã§æèŠæéãæž¬ã£ãŠãã ããã
æ¬çªã§ç¹ã«æ³šæãå¿ èŠãªå€æŽã¯æ¬¡ã®ç¹ãèšç»ã«å ¥ããŠãã ããïŒ
- äºææ§ãä¿ã€äºæ®µéã®ããŒã«ã¢ãŠãïŒã¹ããŒãå ãã³ãŒãåŸããŸãã¯ãã®éïŒã
- ããã¯ãã£ã«ããããã§å®è¡ããããšã
- æç¢ºãªããŒã«ããã¯çµè·¯ïŒåçæãããããã¯ãšã³ããæ©ãæ¬çªã«åºãå Žåã¯ã©ããããïŒã
- æ°ã«ãŒã«ã«ããŒã¿ãäžèŽããŠããããšã蚌æããæ€èšŒã¯ãšãªã
- ãå€ããã£ãŒã«ãã¯åŸã§åé€ããããšãããã±ãããç«ãŠãã¯ãªãŒã³ã¢ãããåããããã€ã«æ··ããªãããšã
AppMaster ã®ããã« Data Designer ããããã¯ãšã³ãã³ãŒããåçæãããã©ãããã©ãŒã ã䜿ã£ãŠãããªããå®å šãªå¿æ§ãã¯ããã§ãïŒå€ãããŒã¿ã仿¥ãçãããã倿ŽããŸãåºè·ããã·ã¹ãã ãé©å¿ããåŸã§ã«ãŒã«ãå³ããããã
åçæã«èãã倿Žã®åå
åçæãããããã¯ãšã³ãã¯ãã¹ããŒã倿Žãæ¬çªã®å€ãè¡ãšäžèŽããªããªããŸã§çŽ æŽãããåããããŸããåçæå¯Ÿå¿ã¹ããŒãé²åã®ç®æšã¯ã·ã³ãã«ã§ãïŒããŒã¿ããŒã¹ãšåçæãããã³ãŒããå°ããäºæž¬å¯èœãªã¹ãããã§è¿œãã€ãéãã¢ããªãåããç¶ããããšã
ããã©ã«ãã§ãæ¡åŒµã»ç§»è¡ã»çž®å°ããéžã¶
éèŠãªå€æŽã¯ãã¹ãŠäžã€ã®åããæã€ãšèããŸãããããŸãã¹ããŒããæ¡åŒµããŠå€ãã³ãŒããšæ°ããã³ãŒãã®äž¡æ¹ãåããããã«ããŸããæ¬¡ã«ããŒã¿ãç§»è¡ããŸããæåŸã«å€ãã«ã©ã ãããã©ã«ããå¶çŽãåé€ããŠçž®å°ããŸãã
å®è·µçãªã«ãŒã«ïŒæ°ããæ§é ã®è¿œå ãšç Žå£çãªã¯ãªãŒã³ã¢ãããåããããã€ã«æ··ããªãã§ãã ããã
ãã°ããå€ãåœ¢ãšæ°ãã圢ã®äž¡æ¹ããµããŒããã
次ã®ãããªæéããããšæ³å®ããŠãã ããïŒ
- äžéšã®ã¬ã³ãŒãã¯æ°ãããã£ãŒã«ããæã¡ãäžéšã¯æããªãã
- ã¢ããªã®ã€ã³ã¹ã¿ã³ã¹ã®äžéšã¯å€ãã³ãŒããæ®ãã¯åçæãããã³ãŒããåãããŠããã
- ããã¯ã°ã©ãŠã³ããžã§ããã€ã³ããŒããã¢ãã€ã«ã¯ã©ã€ã¢ã³ããé ããå¯èœæ§ãããã
ãªãŒããŒã©ããäžã¯ãäž¡æ¹ã®åœ¢ãæå¹ã«ãªãããããŒã¿ããŒã¹ãèšèšããŠãã ãããããã¯ãData Designer ãæŽæ°ã㊠Go ããã¯ãšã³ããåçæãããããªãã©ãããã©ãŒã ã§ã¯ç¹ã«éèŠã§ãã
æžã蟌ã¿ããå ã«èªã¿åããäºæã«ãã
ãŸãæ°ããã³ãŒããå€ãããŒã¿ãå®å šã«èªããããã«ããŸãããã®åŸã«æžã蟌ã¿ãã¹ãåãæ¿ããŠæ°ããããŒã¿åœ¢ãçæããããã«ããŸãã
äŸãã°åäžã® status ãã£ãŒã«ãã status + status_reason ã«åå²ããå ŽåããŸãæ°ããã³ãŒãã status_reason ãæ¬ ããŠããå Žåã§ãåããããã«ããŠãããæ®µéçã« status_reason ãæžãå§ããŸãã
éšåçã»æªç¥ã®ããŒã¿ãã©ãæ±ããæ±ºãã
enumãé NULL ã«ã©ã ãå³ããå¶çŽã远å ããéã¯ãå€ãæ¬ ããŠãããäºæããªãå Žåã«ã©ãããããäºåã«æ±ºããŠãããŸãïŒ
- äžæçã« NULL ã蚱容ããåŸã§ããã¯ãã£ã«ããã
- æå³ãå€ããªãå®å šãªããã©ã«ããèšå®ããã
- èªã¿åããšã©ãŒãé¿ããããã« "unknown" ã®ãããªå€ãæ®ãã
ããã«ããé»ç€ºçãªããŒã¿ç Žå£ïŒééã£ãããã©ã«ãïŒãå³ããéå®³ïŒæ°ããå¶çŽãå€ãè¡ãæåŠããïŒãé²ããŸãã
åã¹ãããã«ããŒã«ããã¯æ¹éãæã€
æ¡åŒµãã§ãŒãºäžã¯ããŒã«ããã¯ãæãç°¡åã§ããæ»ãå¿ èŠãããå Žåãå€ãã³ãŒãã¯æ¡åŒµãããã¹ããŒãã«å¯ŸããŠãŸã åãã¯ãã§ããäœãããŒã«ããã¯ãããïŒã³ãŒãã®ã¿ããã³ãŒããšãã€ã°ã¬ãŒã·ã§ã³ã®äž¡æ¹ãïŒãæžãçããåãæ¶ãå¯èœã§ãªãç Žå£çãªå€æŽã¯èªä¿¡ãã€ããŸã§é¿ããŠãã ããã
æé ïŒåçæã«èãã倿Žãèšç»ãã
åçæãããããã¯ãšã³ãã¯å®¹èµŠããããŸãããã¹ããŒããšçæã³ãŒããäžèŽããªããšæ¬çªãå ã«èŠã€ããŸããæãå®å šãªæ¹æ³ã¯ããã¹ãŠã®å€æŽãå°ããªåãæ¶ãå¯èœãªããŒã«ã¢ãŠããšããŠæ±ãããšã§ããããŒã³ãŒãããŒã«ã§äœã£ãŠããŠãåãã§ãã
ãŸãæå³ãå¹³æãªèšèã§æžããçŸåšã®ããŒã¿ãã©ãèŠããããèšããŸããæ¬çªã® 3ã5 ä»¶ã®å®éã®è¡ïŒãŸãã¯æè¿ã®ãã³ãïŒãéžã³ã空å€ãå€ããã©ãŒããããé©ããããªããã©ã«ããªã©ã®ãæ±ãéšåããã¡ã¢ããŸããããããŠãããšãçŸå®ã®ããŒã¿ãæºãããªãå®ç§ãªæ°ãã£ãŒã«ããèšèšããŠããŸãã®ãé²ããŸãã
以äžã¯ããã©ãããã©ãŒã ãããã¯ãšã³ãã³ãŒããåçæããå Žåã«ããŸãæ©èœããå®çšçãªæé ã§ãïŒäŸïŒAppMaster ã Data Designer ã¢ãã«ãã Go ããã¯ãšã³ããµãŒãã¹ãåçæããå ŽåïŒã
-
ãŸãæ¡åŒµã眮ãæããªãã æ°ããã«ã©ã ãããŒãã«ã¯å æ³çã«è¿œå ããŸããæ°ãããã£ãŒã«ãã¯æå㯠nullable ã«ããããå®å šãªããã©ã«ããä»ããŸããæ°ãããªã¬ãŒã·ã§ã³ãå°å ¥ãããªããå€éšããŒã空蚱容ã«ããŠããåããŠãããŸãã
-
äœãåé€ããã«æ¡åŒµããã¹ããŒãããããã€ããã å€ãã³ãŒãããŸã åäœããéã«ããŒã¿ããŒã¹å€æŽãåºè·ããŸããç®æšã¯å€ãã³ãŒããå€ãã«ã©ã ãžæžãç¶ããããããšãããŒã¿ããŒã¹ããããåãå ¥ããããšã§ãã
-
å¶åŸ¡ããããžã§ãã§ããã¯ãã£ã«ããã æ°ãããã£ãŒã«ãããããåŠçã§åããç£èŠãšåå®è¡ãã§ããããã«ããŸããåªçã«ïŒ2 åå®è¡ããŠãããŒã¿ãå£ããªãïŒãã倧ããªããŒãã«ã§ã¯æ®µéçã«è¡ããæŽæ°ãããè¡æ°ããã°ã«æ®ããŸãã
-
ãŸãèªã¿åããåãæ¿ãããã©ãŒã«ããã¯ãçšæããã åçæãããããžãã¯ãæ°ãããã£ãŒã«ããåªå ããŠèªãããã«ããããæ°ããããŒã¿ããªãå Žåã¯å€ããã£ãŒã«ãã«ãã©ãŒã«ããã¯ããããã«ããŸããèªã¿åããå®å®ãããæžã蟌ã¿ãæ°ãããã£ãŒã«ããžåãæ¿ããŸãã
-
æåŸã«ã¯ãªãŒã³ã¢ããã ä¿¡é ŒãšããŒã«ããã¯èšç»ãã§ãããå€ããã£ãŒã«ããåé€ããå¶çŽãå³ããããŸãïŒNOT NULL ã«ããäžæå¶çŽãå€éšããŒã远å ããŸãã
å
·äœäŸïŒããªãŒããã¹ãã® status ã«ã©ã ã statuses ããŒãã«ãåç
§ãã status_id ã«çœ®ãæããããšããŸãããŸã status_id ã nullable ã§è¿œå ããæ¢åã®ããã¹ãå€ããããã¯ãã£ã«ããã¢ããªã status_id ãèªãã null ã®å Žå㯠status ã«ãã©ãŒã«ããã¯ããããã«æŽæ°ããæåŸã« status ãåé€ã㊠status_id ãå¿
é ã«ããŸããåæ®µéã§ããŒã¿ããŒã¹ã¯äºææ§ãä¿ã€ãããåçæããŠãå®å
šã§ãã
åå©çšã§ããå®çšçãªãã¿ãŒã³
ããã¯ãšã³ããåçæããããšãå°ããªã¹ããŒã倿Žã APIãããªããŒã·ã§ã³ãUI ãã©ãŒã ãžæ³¢åããŸããåçæå¯Ÿå¿ã¹ããŒãé²åã®ç®çã¯ãå€ãããŒã¿ãæå¹ãªãŸãŸæ°ããã³ãŒããããŒã«ã¢ãŠãããæ¹æ³ã§å€æŽãè¡ãããšã§ãã
ãã¿ãŒã³1ïŒç Žå£ããªããªããŒã
çŽæ¥ã®åå倿Žã¯ãªã¹ã¯ããããŸããå®å šãªæ¹æ³ã¯çæéã®ç§»è¡æéãšããŠæ±ãããšã§ãã
- æ°ããã«ã©ã ïŒäŸïŒ
customer_phoneïŒã远å ããå€ãã«ã©ã ïŒphoneïŒã¯æ®ããŸãã - ä¿åæã«äž¡æ¹ãžæžã蟌ãïŒãã¥ã¢ã«ã©ã€ãïŒããããžãã¯ãæŽæ°ããŸãã
- æ¢åè¡ãããã¯ãã£ã«ããŠ
customer_phoneãåããŸãã - ã«ãã¬ããžãé«ããªã£ããèªã¿åããæ°ããã«ã©ã ã«åãæ¿ããŸãã
- åŸç¶ãªãªãŒã¹ã§å€ãã«ã©ã ãåé€ããŸãã
AppMaster ã®ãããªããŒã«ã§ã¯ãåçæã«ãã£ãŠããŒã¿ã¢ãã«ããšã³ããã€ã³ããææ°ä»æ§ã«åºã¥ããŠåæ§ç¯ãããããããã¥ã¢ã«ã©ã€ãã¯å€ãäžä»£ãšæ°ããäžä»£ã®ã³ãŒããäž¡æ¹æºè¶³ãããè¯ãæ¹æ³ã§ãã
ãã¿ãŒã³2ïŒäžã€ã®ãã£ãŒã«ããäºã€ã«åå²ãã
full_name ã first_name ãš last_name ã«åå²ããå Žåãããã¯ãã£ã«ã¯ããæéãããããŸããåå²ãå®äºãããŸã§ full_name ãæ®ããŠãããŸãããã
å®çšçã«ãŒã«ïŒããŒã¹ã«å€±æããå Žå㯠last_name ã«å
šäœã®æååãå
¥ããŠãã©ã°ãç«ãŠãã¬ãã¥ãŒå¯Ÿè±¡ã«ãããªã©ã®ãã©ãŒã«ããã¯ãçšæããŠããå
ã®ãã£ãŒã«ããåé€ããŸãã
ãã¿ãŒã³3ïŒãã£ãŒã«ããå¿ é ã«ãã
nullable ãå¿ é ã«å€ããã®ã¯å žåçãªæ¬çªãã¬ãŒã«ãŒã§ããå®å šãªé åºã¯ïŒãŸãããã¯ãã£ã«ã次ã«åŒ·å¶ã§ãã
ããã¯ãã£ã«ã¯æ©æ¢°çã«ããã©ã«ããå
¥ããæ¹æ³ã§ãããŠãŒã¶ãŒã«å
¥åãä¿ããããªããžãã¹é§åã®æ¹æ³ã§ãæ§ããŸãããããŒã¿ãå®äºããŠãã NOT NULL ã远å ããããªããŒã·ã§ã³ãæŽæ°ããŠãã ãããåçæãããããã¯ãšã³ããèªåçã«å³ããããªããŒã·ã§ã³ã远å ããå Žåããã®é åºã§è¡ãã°äºæãã¬é害ãé²ããŸãã
ãã¿ãŒã³4ïŒenum ãå®å šã«å€æŽãã
enum ã®å€æŽã¯å€ãã³ãŒããå€ãå€ãéãå Žåã«ç Žå£çã«ãªããŸããç§»è¡äžã¯äž¡æ¹ãåãå
¥ããèšèšã«ããŸãããã"pending" ã "queued" ã«çœ®ãæãããªãããã°ããäž¡æ¹ãæå¹ã«ããŠããžãã¯ã§ãããããŸãããã¹ãŠã®ã¯ã©ã€ã¢ã³ããå€ãå€ãéããªããªã£ããå€ãå€ãåé€ããŸãã
ããäžåºŠã«ãªãªãŒã¹ããªããã°ãªããªãå Žåã¯ã圱é¿ç¯å²ãçããŠãªã¹ã¯ãæžãããŸãïŒ
- å€ãé ç®ãæ®ãã€ã€æ°ããé ç®ã远å ããã
- ããŒã¿ããŒã¹ã®ããã©ã«ãã䜿ã£ãŠæ¿å ¥ãç¶ç¶ã§ããããã«ããã
- ã³ãŒããå¯å®¹ã«ããŠãæ°ããå€ããŸãèªã¿ããªããã°å€ãå€ã«ãã©ãŒã«ããã¯ããã
- äžæçãªãããã³ã°ã¬ã€ã€ãŒãèšããå ¥åãããå€ãå€ãæ°ããå€ãšããŠä¿åããã
ãããã®ãã¿ãŒã³ã¯ãåçæã«ããã³ãŒããçŽ æ©ãå€ãã£ãŠããã€ã°ã¬ãŒã·ã§ã³ãäºæž¬å¯èœã«ä¿ã¡ãŸãã
æãã¬åé¡ãåŒãèµ·ããäžè¬çãªãã¹
äžçªã®èª€ç®ã¯ã人ã ãã³ãŒãã®åçæãéæ³ã®ãªã»ãããã¿ã³ã®ããã«æ±ãããšã§ããåçæãããããã¯ãšã³ãã¯ã¢ããªã³ãŒãããããã«ä¿ãŠãŸãããæ¬çªããŒã¿ããŒã¹ã«ã¯æšæ¥ã®ããŒã¿ãæ®ã£ãŠããŸããåçæå¯Ÿå¿ã¹ããŒãé²åãšã¯ãæ°ããçæãããã³ãŒããšããŒãã«ã«åº§ã£ãŠããå€ãã¬ã³ãŒãã®äž¡æ¹ãèšç»ããããšã§ãã
ããããçœ ã¯ããã©ãããã©ãŒã ããã€ã°ã¬ãŒã·ã§ã³ãå šéšãã£ãŠãããã ããããšæ³å®ããããšã§ããããšãã° AppMaster ã§ã¯ Data Designer ãã Go ããã¯ãšã³ããåçæã§ããŸãããæ¬åœã®é¡§å®¢ããŒã¿ãã©ã倿ãããããã©ãããã©ãŒã ãæšæž¬ããããšã¯ã§ããŸãããæ°ããå¿ é ãã£ãŒã«ãã远å ãããªããæ¢åè¡ã«ã©ããã£ãŠå€ãå ¥ãããã®èšç»ã¯ããªããçšæããå¿ èŠããããŸãã
ããäžã€ã®é©ãã¯ãã£ãŒã«ããæ©ãŸã£ãŠåé€ãåå倿Žããããšã§ãããããã£ãŒã«ãã¯ã¡ã€ã³ UI ã§äœ¿ãããŠããªãããã«èŠããŠããã¬ããŒãã宿ãšã¯ã¹ããŒããWebhook ãã³ãã©ã管çç»é¢ãªã©ã§äœ¿ãããŠããããšããããŸãããã¹ãã§ã¯åé¡ããªããŠããæ¬çªã§äžã€ã®å¿ããããçµè·¯ãå€ãã«ã©ã åãæåŸ ããŠããŠå€±æããããšããããŸãã
å€äžã®ããŒã«ããã¯ãæããã¡ãªäºã€ã®ãã¹ïŒ
- ã¹ããŒããå€ããŠã³ãŒããåçæããããå€ãè¡ãæå¹ã«ããããã®ããŒã¿ãã€ã°ã¬ãŒã·ã§ã³ãæžããŠæ€èšŒããŠããªãã
- ãã¹ãŠã®ãªãŒããŒãšã©ã€ã¿ãŒãæŽæ°ã»ãããã€ãããåã«ã«ã©ã ããªããŒã ãŸãã¯åé€ããã
- 倧ããªããŒãã«ã®ããã¯ãã£ã«ãèµ°ãããåã«æèŠæéã確èªããŠããªãã
- æ°ããå¶çŽïŒNOT NULLãUNIQUEãå€éšããŒïŒãå ã«è¿œå ããŠãã¬ã¬ã·ãŒããŒã¿ãå£ããã®ãåŸã§çºèŠããã
- ããã¯ã°ã©ãŠã³ããžã§ãããšã¯ã¹ããŒããã¬ããŒãããŸã å€ããã£ãŒã«ããèªãã§ããã®ãå¿ããŠããã
åçŽãªã·ããªãªïŒphone ã mobile_number ã«ãªããŒã ããNOT NULL ã远å ããŠåçæãããšããŸããã¢ããªç»é¢ã¯åããããããŸããããå€ã CSV ãšã¯ã¹ããŒãããŸã phone ãåç
§ããŠããŠãäœåãã®æ¢åã¬ã³ãŒãã null ã® mobile_number ãæã£ãŠãããšãã£ãäºæ
ãèµ·ããŸããéåžžã®å¯ŸåŠã¯æ®µéçãªå€æŽã§ãïŒæ°ããã«ã©ã ã远å ãããã°ããäž¡æ¹ã«æžã蟌ã¿ãããã¯ãã£ã«ããŠããå¶çŽãå³ããããæåŸã«å€ããã£ãŒã«ããåé€ããŸãã
å®å šãªãã€ã°ã¬ãŒã·ã§ã³ã®ããã®äºåãã§ãã¯ãªã¹ã
ããã¯ãšã³ããåçæãããå Žåãã³ãŒãã¯éãå€ãããŸããæ¬çªããŒã¿ã¯é©ãã«å¯å®¹ã§ã¯ãããŸãããã¹ããŒã倿Žãåºè·ããåã«çããããã¯å®å šã«å€±æã§ãããïŒããã§ãã¯ãå®è¡ããŠãã ãããåçæå¯Ÿå¿ã¹ããŒãé²åãéå±ã«ããŠããïŒãããæãŸããïŒã®ãç®çã§ãã
ã»ãšãã©ã®åé¡ãèŠã€ãã 5 ã€ã®ãã§ãã¯
- ããã¯ãã£ã«ã®èŠæš¡ãšéåºŠïŒ æ¢åã®äœè¡ãæŽæ°ããå¿ èŠãããããå®éã«æ¬çªã§ã©ããããæéããããããèŠç©ãããå°ããªããŒã¿ããŒã¹ã§åé¡ãªãã£ãããã¯ãã£ã«ãæ¬çªã§ã¯äœæéããããããšããããã¢ããªãé ãæããããåå ã«ãªããŸãã
- ããã¯ãšããŠã³ã¿ã€ã ã®ãªã¹ã¯ïŒ 倿Žãæžã蟌ã¿ããããã¯ããå¯èœæ§ãããããç¹å®ããã倧ããªããŒãã«ã®å€æŽãå倿Žã¯é·æéããã¯ãä¿æããããšãããããããã¯ã®å¯èœæ§ããããªãå®å šãªããŒã«ã¢ãŠãïŒå ã«ã«ã©ã 远å ãåŸã§ããã¯ãã£ã«ãæåŸã«ã³ãŒãåãæ¿ãïŒãèšç»ããã
- å€ãã³ãŒããšæ°ããã¹ããŒãã®äºææ§ïŒ ãããã€ãããŒã«ããã¯ã®éã«å€ãããã¯ãšã³ããäžæçã«æ°ããã¹ããŒãã«å¯ŸããŠåããããããªããšæ³å®ãããåããŒãžã§ã³ãèªã¿æžãããŠã¯ã©ãã·ã¥ããªãã確èªãããããç¡çãªãäºæ®µéãªãªãŒã¹ãå¿ èŠã
- ããã©ã«ããš NULL ã®æåïŒ æ°ããã«ã©ã ã«å¯ŸããŠæ¢åè¡ã¯ NULL ã®ãŸãŸããããã©ã«ããå¿ èŠããæ±ºããããã©ã°ãã¹ããŒã¿ã¹ãã¿ã€ã ã¹ã¿ã³ããªã©ã§æ¬ æãéåžžãšããŠæ±ãããžãã¯ã«ããŠããããšã
- ãããã€åŸã«æ³šèŠããç£èŠã·ã°ãã«ïŒ 泚èŠããã¢ã©ãŒã ãå ·äœçã«éžã¶ïŒãšã©ãŒçïŒAPI 倱æïŒãDB ã®é ãã¯ãšãªããã¥ãŒïŒãžã§ãã®å€±æãäž»èŠãªãŠãŒã¶ãŒæäœïŒãã§ãã¯ã¢ãŠãããã°ã€ã³ããã©ãŒã éä¿¡ïŒãããªããŒã·ã§ã³ãšã©ãŒã®æ¥å¢ã®ãããªâéããªâãã°ãç£èŠããã
ç°¡åãªäŸ
orders ããŒãã«ã«æ°ããå¿
é ãã£ãŒã«ã status ã远å ããå Žåãäžæ°ã« "NOT NULLãããã©ã«ããªã" ã«ããŠããã·ã¥ããªãã§ãã ããããŸã㯠nullable ãšããŠè¿œå ããæ°èŠè¡çšã®ããã©ã«ããä»ããŠåçæãããã³ãŒããæ¬ ãã status ãæ±ããããã«ããŠããæ¢åè¡ãããã¯ãã£ã«ãããã®åŸã«å¶çŽãå³ããããŸãã
AppMaster ã䜿ã£ãŠããå Žåããã®èãæ¹ã¯ç¹ã«æå¹ã§ããããã¯ãšã³ããé »ç¹ã«åçæã§ããã®ã§ãã¹ããŒã倿Žããšã«ç°¡åã«ããŒã«ããã¯ã§ããå°ããªãªãªãŒã¹ã«æ±ãããšã§ãã€ã°ã¬ãŒã·ã§ã³ãäºæž¬å¯èœã«ãªããŸãã
äŸïŒæ¢åã¬ã³ãŒããå£ããã«ã©ã€ãã¢ããªãé²åããã
å
éšã®ãµããŒãããŒã«ã§ãšãŒãžã§ã³ãããã±ããã«ããªãŒããã¹ãã® priorityïŒäŸïŒ"high", "urgent", "HIGH", "p1"ïŒãã€ããŠãããšããŸããããã峿 Œãª enum ã«å€ããŠã¬ããŒããã«ãŒãã£ã³ã°ãå®å®ããããã
å®å šãªã¢ãããŒãã¯ãåçæäžãå€ãã¬ã³ãŒããæå¹ã§ããäºæ®µéã®ãªãªãŒã¹ã§ãã
ãªãªãŒã¹ 1ïŒæ¡åŒµãäž¡æ¹ãžæžããããã¯ãã£ã«ãã
ãŸãäœãåé€ããã¹ããŒããæ¡åŒµããŸããpriority_text ãæ®ãããŸãŸãpriority_enumïŒlow, medium, high, urgent ãªã©ïŒã远å ããŸãã
次ã«ããžãã¯ãæŽæ°ããŠãæ°èŠäœæãç·šéæã«äž¡æ¹ã®ãã£ãŒã«ããžæžã蟌ãããã«ããŸããAppMaster ã®ãããªããŒã³ãŒãããŒã«ã§ã¯ãData Designer ã¢ãã«ãš Business Process ã調æŽããŠå ¥åã enum ã«ããããã€ã€å ã®ããã¹ããä¿åããããšã«ãªããŸãã
ãã®åŸãæ¢åãã±ãããå°ããªãããã§ããã¯ãã£ã«ããŸããäžè¬çãªããã¹ãå€ã enum ã«ãããïŒ"p1" ãš "urgent" -> urgent, "HIGH" -> highïŒããæªç¥ã®ãã®ã¯äžæçã« medium ã«å
¥ããŠã¬ãã¥ãŒå¯Ÿè±¡ã«ããŸãã
ãŠãŒã¶ãŒåŽã®è¡šç€ºã¯çæ³çã«ã¯å€ãããŸãããUI ã¯åãåªå 床ã³ã³ãããŒã«ãèŠãç¶ããè£ã§æ°ãã enum ãåããŠãããŸããããã¯ãã£ã«ãé²ãã°ã¬ããŒãã¯ããã« enum ã䜿ãå§ããããŸãã
ãªãªãŒã¹ 2ïŒçž®å°ããŠå€ããã¹ãåé€ãã
ååã«ç¢ºä¿¡ãæãŠãããèªã¿åãã priority_enum ã®ã¿ã«åãæ¿ãããã£ã«ã¿ãããã·ã¥ããŒããæŽæ°ããåŸç¶ãã€ã°ã¬ãŒã·ã§ã³ã§ priority_text ãåé€ããŸãã
ãªãªãŒã¹ 2 ã®åã«å°ããªãµã³ãã«ã§æ€èšŒããŠãã ããïŒ
- ç°ãªãããŒã ãšå¹Žä»£ã®ãã±ãããã 20ã50 ä»¶ãéžã¶ã
- 衚瀺ãããåªå åºŠãšæ ŒçŽããã enum å€ãæ¯èŒããã
- enum å€ããšã®ä»¶æ°ã確èªããŠã
mediumãç°åžžã«å€ããªã£ãŠããªãããèŠãã
åé¡ãåºããããªãªãŒã¹ 1 ãå€ããã£ãŒã«ããæ®ããŠããã®ã§ããŒã«ããã¯ã¯ç°¡åã§ãïŒãªãªãŒã¹ 1 ã®ããžãã¯ãåãããã€ããUI ãäžæçã« priority_text ãèªãããã«æ»ããŠãããããã³ã°ãä¿®æ£ããŠããã¯ãã£ã«ãããçŽããŸãã
次ã®äžæ©ïŒã¹ããŒãé²åãå埩å¯èœãªç¿æ £ã«ãã
äºæž¬å¯èœãªãã€ã°ã¬ãŒã·ã§ã³ãæããªããã¹ããŒã倿Žãçãã¿ã¹ã¯ã§ã¯ãªãå°ããªãããžã§ã¯ããšããŠæ±ã£ãŠãã ãããç®æšã¯ã·ã³ãã«ã§ãïŒãã¹ãŠã®å€æŽã¯èª¬æããããããªããŒãµã«ããããã誀ã£ãŠå£ãã«ããããšã
èŠèŠçãªããŒã¿ã¢ãã«ã¯æçšã§ããããŒãã«ãé¢ä¿ããã£ãŒã«ãã¿ã€ããäžç®ã§èŠããããšãã¹ã¯ãªããã ãã§ã¯èŠèœãšããã¡ãªåœ±é¿ïŒå®å šãªããã©ã«ãã®ãªãå¿ é ãã£ãŒã«ããå€ãã¬ã³ãŒããå€ç«ãããé¢ä¿ãªã©ïŒã«æ°ã¥ãããããªããŸããAPIãç»é¢ãã¬ããŒããããã¯ã°ã©ãŠã³ããžã§ããªã©ã誰ãäŸåããŠãããããç°¡åã«ç¢ºèªããŸãããã
æ¢ã«äœ¿ãããŠãããã£ãŒã«ãã倿Žããå Žåã¯ãçæã®é·ç§»æéãšéè€ãããã£ãŒã«ããåªå
ããŠãã ãããäŸïŒphone_e164 ã远å ã㊠phone_raw ã 1ã2 ãªãªãŒã¹æ®ããé·ç§»äžã¯æ°ãããã£ãŒã«ããããã°ãããèªã¿ããªããã°å€ããã£ãŒã«ãã«ãã©ãŒã«ããã¯ããæžã蟌ã¿ã¯äž¡æ¹ã«è¡ããå®å
šã«ããã¯ãã£ã«ããããå€ãæ¹ãåé€ããŸãã
ç°å¢ã®éçšèŠåŸããè¯ãæå³ãå®å šãªãªãªãŒã¹ã«å€ããŸããéçºãã¹ããŒãžã³ã°ãæ¬çªãæããŠããã€ã€ãåäžèŠããªãã§ãã ããã
- éçºïŒåçæåŸã«ããã¯ãšã³ããã¯ãªãŒã³ã«èµ·åããåºæ¬çãªãããŒãåããã確èªããã
- ã¹ããŒãžã³ã°ïŒæ¬çªã«è¿ãããŒã¿ã§å®å šãªãã€ã°ã¬ãŒã·ã§ã³èšç»ãå®è¡ããäž»èŠã¯ãšãªãã¬ããŒããã€ã³ããŒããæ€èšŒããã
- æ¬çªïŒããŒã«ããã¯èšç»ãæç¢ºãªç£èŠããããŠåæ Œãã¹ãå°æ°ã®ãã§ãã¯ãæã£ãŠãããšãã«ãããã€ããã
ç§»è¡èšç»ã¯çããŠãå®éã®ããã¥ã¡ã³ãã«ããŠãã ãããäœãå€ããããé åºãããã¯ãã£ã«æ¹æ³ãæ€èšŒæ¹æ³ãããŒã«ããã¯æ¹æ³ãå«ããæ¬çªã«è§Šããåã«ãã¹ãç°å¢ã§ãšã³ãããŒãšã³ãã§å®è¡ããŸãããã
AppMaster ã䜿ããªããData Designer ãæŽ»çšããŠèŠèŠçã«ã¢ãã«ãæ€èšããåçæã§ããã¯ãšã³ãã³ãŒããã¹ããŒããšäžèŽãããŠãã ãããå€åãæ©ãç¹°ãè¿ããŠããå倿Žã«æ¢åã®æ¬çªããŒã¿ã®ããã®èšç»ãããç¿æ £ããäºæž¬å¯èœæ§ãä¿ã€éµã§ãã


