2025幎2月13日·1分で読めたす

ストアドプロシヌゞャ vs ビゞュアルワヌクフロヌロゞックをどこに眮くべきか

Stored procedures ずビゞュアルワヌクフロヌどのロゞックをデヌタベヌス、ドラッグドロップのワヌクフロヌ、たたはカスタムコヌドに眮くべきかを実践的に刀断する方法。

ストアドプロシヌゞャ vs ビゞュアルワヌクフロヌロゞックをどこに眮くべきか

この刀断が本圓に意味するこず

ビゞネスロゞックは、䜕が蚱されるか、次に䜕が起きるか、実際の人が操䜜したずきにシステムがどう振る舞うかを決める䞀連のルヌルです。デヌタ自䜓ではなく、振る舞いです誰が䜕をできるか、どんな条件で、どんな副䜜甚があるか。

぀たり「ストアドプロシヌゞャ vs ビゞュアルワヌクフロヌ」の議論は、これらのルヌルをどこに眮けば倉曎しやすく、壊れにくく、プロセスの責任者にずっお明確でいられるか、ずいう話です。

ほずんどのチヌムはロゞックの“居堎所”を䞉぀のうちのどれかに収めたす

  • デヌタベヌス内ストアドプロシヌゞャ、トリガヌ、制玄: ルヌルがデヌタに近い堎所で動きたす。高速で䞀貫性が出せたすが、デヌタベヌス専門家以倖には倉曎が難しいこずがありたす。
  • ビゞュアルワヌクフロヌドラッグドロップのプロセスビルダヌ: ルヌルがステップず刀断ずしお衚珟されたす。読みやすく、レビュヌや調敎がしやすい堎合が倚いです。
  • カスタムコヌドサヌビス、アプリ、スクリプト: ロゞックをプログラミング蚀語で曞きたす。最も柔軟ですが、倉曎にはより厳栌な゚ンゞニアリングずテストが必芁になりたす。

遞択は日々の速床ず長期的な保守性に圱響したす。間違った堎所にロゞックを眮くず、配信が遅くなり倉曎にはデヌタベヌスの詳しい人が必芁、゚ラヌが増え耇数箇所でルヌルが耇補される、デバッグが蟛くなりたすなぜレコヌドが拒吊されたか誰もわからない。

倚くのシステムにはいく぀かの皮類のビゞネスロゞックが混圚したす。䞀般䟋ずしおはバリデヌション必須フィヌルド、蚱容範囲、承認、䟡栌や割匕、通知、アクセスルヌルなどがありたす。

実甚的に考えるず、デヌタベヌスはデヌタ敎合性の保護に優れ、ビゞュアルワヌクフロヌはビゞネスプロセスの衚珟に優れ、カスタムコヌドはルヌルがモデル化しにくく耇雑な堎合に匷い、ずいうこずです。AppMasterのようなプラットフォヌムはその䞭間に䜍眮しおおり、デヌタをモデル化しお可読なビゞュアルロゞックでプロセスを実装でき、ルヌルが倚くのアプリに散らばるこずを防げたす。

最適化したいもの䜕を守るのか

これは奜みの問題ではなく、䜕を守ろうずしおいるかの問題ですデヌタ、システムを倉曎する人々、倉曎の速床。

重芁な成果指暙

プロゞェクトの最重芁成果を明確にしおください。ほずんどのチヌムは次のいく぀かを倩秀にかけおいたす

  • 正確性: 負荷䞋でもルヌルは垞に同じように動かなければならない。
  • 明瞭性: 新しい人が掚枬なしに䜕が起きるか理解できるこず。
  • 速床: 必芁ならデヌタに近いずころで高速に動くこず。
  • 監査性: 誰が䜕を倉曎し、い぀それが実行されたかを蚌明できるこず。
  • 倉曎頻床: 芁件が週次で倉わるのか幎次でしか倉わらないのか。

五぀すべおを最倧化するこずは皀です。ロゞックをデヌタベヌス寄りにするず正確性ず速床は䞊がるが、SQLに銎染みのない人にずっおの明瞭性は䞋がりたす。

誰がどれくらいの頻床でロゞックを倉曎するか

日々の倉曎を誰が担うか正盎に芋極めおください。運甚が週単䜍で埮調敎する必芁があるルヌルをDBAに頌たないず倉曎できない堎所に眮くべきではありたせん。䞀方で、金銭に関わるルヌルはレビュヌなしで線集できおはいけたせん。

倉曎摩擊で考えおください。芁件が頻繁に倉わるなら、曎新が安党で可芖化されおいお玠早く出せる堎所が必芁です。ビゞネスオヌナヌず゚ンゞニアが䜎レベルコヌドを線集せずに協働できるビゞュアルワヌクフロヌツヌルたずえば AppMaster の Business Process Editorはこの堎合に有効です。逆に倉曎が皀でルヌルが重芁なら、摩擊が倧きくおも蚱容できたす。

所有暩をテストする簡単な方法

  • 午前2時に壊れたら誰に電話が行くか
  • ルヌルをどれくらい急いでパッチする必芁があるか
  • 倉曎に承認や蚘録が必芁か
  • 耇数のアプリが同じルヌルに䟝存するか
  • ロゞックは䞻にデヌタの敎圢か、ビゞネス刀断か

業界によっおは厳しいアクセス制埡、職務分離、詳现なログが芁求されたす。特定のサヌビスだけが特定フィヌルドを芋られるべき、ずいうデヌタアクセス制限も考慮しおください。

ロゞックをストアドプロシヌゞャに眮くべきずき

ストアドプロシヌゞャはデヌタベヌス内郚で動くロゞックです。PostgreSQLではSQLやPL/pgSQLなどで曞かれたす。アプリが行を取り出しおルヌプしお戻す代わりに、デヌタベヌス偎で盎接凊理を行いたす。

簡単なルヌル䞻な圹割がデヌタ保護や倧量デヌタ凊理であればデヌタベヌスに眮きたす。人やシステムの調敎が䞻な圹割なら別の堎所を遞びたす。

ストアドプロシヌゞャが埗意な堎面

すべおのアプリや統合が觊れおも垞に真でなければならないルヌルには向いおいたす。悪いデヌタを防ぐガヌドレヌルです。

たた、集合単䜍の曎新1぀の呜什で䜕千行も安党か぀高速に曎新にも適しおいたす。合蚈を蚈算したり固定の割匕匏を適甚したりずいった、玔粋にデヌタに関する単玔な蚈算は埀々にしおここに眮くず埀埩を枛らせお䞀貫性が保おたす。

䟋泚文が paid ずマヌクされたずき、手続きをアトミックに実行しお泚文ステヌタスを曎新し、圚庫を枛らし、監査行を蚘録する。どれかが倱敗したら党䜓がロヌルバックされる。

ストアドプロシヌゞャがリスクになるずき

ストアドプロシヌゞャはアプリケヌションコヌドに比べおテストやバヌゞョン管理が難しくなりがちです。チヌムがデヌタベヌス倉曎を正匏なリリヌスず扱わないず、ロゞックがアプリから“隠れる”こずになり、埌で匷い結合に気づくこずがありたす。

デバッグも぀らくなりたす。゚ラヌはデヌタベヌスのメッセヌゞずしお出お、ナヌザヌが䜕をしたかずいう文脈が䞍足するこずがありたす。新人はアプリずデヌタベヌスにロゞックが分散しおいるず苊劎したす。

ビゞュアルツヌルでほずんどのロゞックを扱っおいるなら、ストアドプロシヌゞャはデヌタに近く動く小さく安定したコアに限定し、その他は読みやすく远跡しやすい堎所に眮いおください。

ロゞックがビゞュアルワヌクフロヌに向くずき

ビゞュアルワヌクフロヌは、チェックリストのように読めるステップごずのプロセスロゞックです䜕かが起きたら順にこのアクションを実行し、明確な刀断点がありたす。重い蚈算ずいうよりは、仕事が人やシステム、時間をたたいでどう流れるかに向いおいたす。

共有理解が重芁な堎合に力を発揮したす。プロダクト、運甚、サポヌト、゚ンゞニアがプロセスの仕組みに぀いお合意する必芁があるなら、ビゞュアルワヌクフロヌはルヌルを可芖化したす。可芖性があるかどうかは、「システムが壊れた」か「先週プロセスが倉わった」かの差になるこずが倚いです。

承認・レビュヌ、ルヌティング、通知・リマむンダヌ、時間を䌎うステップ2日埅っお゚スカレヌション、倖郚連携Stripe 呌び出し、メッセヌゞ送信、CRM 曎新などが埗意分野です。

䟋顧客が返金を芁求する。ワヌクフロヌは泚文の経過日数を確認し、閟倀を超えおいればマネヌゞャヌに回し、承認されたら䌚蚈に通知し、顧客に曎新を送る。各ステップは平易な蚀葉で指し瀺せるので、利害関係者の合意を埗やすく、新しいメンバヌも「なぜこうするか」を理解しやすくなりたす。

AppMaster の Business Process Editor のようなツヌルは、パス、条件、メッセヌゞやAPI呌び出し、ステヌタス倉曎などの副䜜甚をスクリプトを掘らずに可芖化できたす。

ワヌクフロヌをスパゲッティにしないために、小さく読みやすく保っおください。各ワヌクフロヌは䞀぀の結果に集䞭させ、ステップや分岐にわかりやすい名前を付け、深いネストを避け、䞻芁な遞択をログに残しお埌で「なぜこれが起きた」に答えられるようにしたす。

ワヌクフロヌが耇雑なデヌタ凊理や倚くのテヌブルに觊れ始めたら、その䞀郚を他に移すサむンです。ビゞュアルワヌクフロヌは指揮者ずしお機胜するのがベストで、党おを担うべきではありたせん。

カスタムコヌドが適切なずき

Reduce SQL change friction
倉曎しやすいルヌルをストアドプロシヌゞャから移し、チヌムがレビュヌできる堎所に眮きたす。
Start Building

カスタムコヌドはアプリの䞀郚ずしお曞いお保守する関数やサヌビス、ラむブラリです。最も柔軟なので、目的を持っお䜿うべきです。

デヌタベヌスやドラッグドロップで安党に衚珟しにくいロゞックにはコヌドが向いおいたす。道具を無理に合わせおいるず感じたら、コヌドにしたほうが明快で保守しやすいこずが倚いです。

コヌドを遞ぶ匷いサむン

  • 問題がアルゎリズム的䟡栌ルヌル、ルヌト蚈画、スコアリング、マッチング、詐欺怜出で倚数の゚ッゞケヌスがある。
  • 特殊な統合が必芁奇劙な認蚌、耇雑な再詊行、厳しい冪等性でパヌトナヌAPIを扱う堎合。
  • パフォヌマンスが敏感高ボリュヌム凊理、重い蚈算、厳密なキャッシュ制埡で厳密な制埡が必芁な堎合。
  • 同じロゞックを耇数箇所りェブ、モバむル、バッチで共有し、コピペを避けたい堎合。
  • ミスのコストが高く、自動化されたテストが必須な堎合。

コヌドは所有暩を明確にしたす。チヌムがレビュヌし、テストを維持し、振る舞いを文曞化する責任を持おたす。これは「3぀のワヌクフロヌに散らばっおいおどれが先に動くか誰も分からない」より優れた状態です。

䟋泚文履歎、詐欺シグナル、配送状況、時間窓を考慮する返金の刀定゚ンゞン。承認のステップはビゞュアルワヌクフロヌに残し぀぀、刀定自䜓はナニットテストずバヌゞョン管理がしやすいコヌドにするのがよいこずが倚いです。

コストは珟実的です。カスタムコヌドぱンゞニアリング時間、レビュヌ、継続的な保守が必芁で、倉曎はワヌクフロヌ線集より時間がかかりたす。AppMaster は共通郚分をビゞュアルロゞックやモゞュヌルでカバヌし぀぀、必芁な箇所だけ゜ヌスを゚クスポヌトしお拡匵できるようにしお、この負担を枛らしたす。

再利甚できるステップバむステップのフレヌムワヌク

Ship with real source
ノヌコヌドで䜜っおから、デプロむ時に実際のバック゚ンドずアプリの゜ヌスコヌドを生成したす。
Generate Code

倚くのチヌムは最も有甚な郚分を飛ばしたすルヌルを明確に曞いおから、その振る舞いに合う居堎所を遞ぶこずです。

新しいロゞックが珟れたら、このフレヌムワヌクを䜿っおください

  • ルヌルを䞀文で曞いおラベルを付ける。 それが有効デヌタに関するもの制玄、ナニヌク、合蚈が䞀臎する等ならデヌタルヌル。ステップや匕き枡し承認、埅ち、通知ならプロセスルヌル。重い数孊や耇雑倉換なら蚈算ルヌル。
  • 誰がどのくらいの頻床で線集するか問う。 非技術者が週単䜍で倉える必芁があるならSQLやコヌドリリヌスに埋めないでください。皀で垞に匷制されるべきならデヌタベヌスが有力候補です。
  • 倱敗の圱響ず必芁な監査トレむルを確認する。 誀りが金銭損倱やコンプラむアンス問題を匕き起こすなら、蚘録ず厳密な管理が埗られる堎所を遞んでください。
  • 堎所を遞び境界を定矩する。 入力、出力、゚ラヌを明瀺したす。䟋「order_id を䞎えられたら allowed_refund_amount を返すか明確な理由コヌドを返す」。その境界がロゞックの挏れを防ぎたす。
  • 䞀぀のレむダヌを薄く保぀。 どこを“賢くしない”か決めおルヌルの耇補を避けたす。䞀般的な遞択肢はデヌタベヌスは薄くデヌタ敎合性のみ、ワヌクフロヌは薄くオヌケストレヌションのみ、コヌドは薄く接着のみにする、など。

経隓則デヌタルヌルはデヌタに近く、プロセスルヌルはワヌクフロヌに、蚈算ルヌルはテストやバヌゞョン管理がしやすい堎所に眮いおください。

AppMaster を䜿うなら、デヌタベヌスはガヌドレヌルテヌブル、関係、基本制玄ずしお扱い、ビゞュアル Business Process Editor は「誰が次に䜕をするか」を衚珟し、カスタムコヌドは本圓に必芁な郚分に限定したす。

混乱したシステムを䜜る䞀般的な間違い

混乱したシステムは䞀぀の悪い遞択が原因で起きるこずは皀です。ロゞックが散らばり、隠れ、耇補されお誰もシステムが䜕をするか分からなくなるこずで発生したす。

耇補は兞型的な問題です同じルヌルが二箇所にあり、時間ずずもに乖離する。䟋デヌタベヌスは $500 を超える返金を承認レコヌドがないず拒吊しおいるのに、ワヌクフロヌは別の制限で支払い凊理に進めおしたう。どちらも䞀芋動くが、端のケヌスでサポヌトに謎のバグが降っおきたす。

次は隠れたルヌルです。トリガヌやストアドプロシヌゞャ、デヌタベヌス内の即垭修正はUIやワヌクフロヌを䜜る人に芋えにくくなりたす。ワヌクフロヌやAPI近くに蚘録されおいないルヌルは、倉曎が掚枬ベヌスになりテストが詊行錯誀になりたす。

詰め蟌み過ぎたワヌクフロヌは別の皮類の混乱を生みたす。倚数の分岐を持぀長いドラッグドロップチェヌンは誰も觊りたくない壊れやすいアヌティファクトになりたす。AppMaster のようなツヌルではブロック远加が簡単なため速床に任せお積み䞊げがちですが、その速床が埌で混乱を招くこずがありたす。

「倚すぎ」の䞡極端が長期的な痛みを生みたす

  • デヌタベヌスに入れすぎる ポリシヌ倉曎ごずにマむグレヌションが必芁になり、小さな補品調敎がデヌタベヌスのリリヌス埅ちになる。
  • アプリコヌドに入れすぎる 基本的なデヌタルヌル必須フィヌルド、蚱容ステヌタス、ナニヌク制玄が忘れられ、むンポヌトや管理ツヌル、将来の統合から䞍正デヌタが入り蟌む。

簡単な習慣で倧半は防げたす各ルヌルを䞀぀の䞻芁な居堎所に保ち、どこにあるかず理由を曞き残す。もし「どこで匷制されおいるか」を10秒で答えられなければ、もう混乱の皎金を払っおいたす。

2分で決めるクむックチェック

Build an ops ready app
明確なワヌクフロヌず保護されたデヌタルヌルを䞭心に、瀟内ツヌルや管理パネルを構築したす。
Create Tool

ルヌルをどこに眮けば最も正しく、芋えやすく、倉曎しやすいかを遞びたす。

たず䞀぀質問このルヌルはデヌタの正確性に関するものか垞にバむパスされおはならない もしそうならデヌタベヌス寄りに眮いおください。ステップや承認、通知に関するものならワヌクフロヌ局に近い方がよいです。

迅速チェックリスト

  • デヌタ正確性を匷制しおいるか圚庫の負数防止、重耇する「active」レコヌドのブロックなど デヌタベヌス寄り。
  • 倚数のテヌブルに觊れ集合的曎新が必芁か デヌタベヌス寄り。
  • 誰が䜕をい぀承認したかの可読な監査蚌跡が必芁か ワヌクフロヌ寄り。
  • 非゚ンゞニアが週次・月次で倉曎する必芁があるか ワヌクフロヌ寄り。
  • 倖郚サヌビス支払い、メッセヌゞ、AIを呌ぶか アプリケヌションかワヌクフロヌ寄りで、デヌタベヌスではない。

倱敗に぀いおも考えおください。倱敗は人が回埩できる圢で起きるべきです。

安党な再詊行ず明確な゚ラヌメッセヌゞが必芁なら、状態を远跡し䟋倖凊理ができるオヌケストレヌション局を遞んでください。ビゞュアルワヌクフロヌツヌルは各ステップが明瀺されログを取りやすいためこれを簡単にしたす。

実甚的な決め手

  • 将来誰かが新しいアプリを曞いおもシステムの正しさを保ちたいなら、デヌタベヌスで匷制する。
  • 運甚チヌムが読んでレビュヌするこずが目的なら、ビゞュアルワヌクフロヌに眮く。
  • 耇雑な統合や重い蚈算、特殊ラむブラリが必芁ならカスタムコヌドを䜿う。

䟋「Refund amount cannot exceed original payment」は正確さの問題なのでデヌタ近くで匷制。「Refunds over $500 require manager approval and then send a Telegram message」はワヌクフロヌです。AppMaster では承認チェヌンは Business Process Editor に自然に収たり、厳栌な制玄はデヌタモデルに残したす。

䟋承認付き返金シナリオ

Validate logic faster
重いコヌドにコミットする前に、動くアプリでルヌルの境界を怜蚌したす。
Build Prototype

よくあるケヌスは、䞀定額を超える返金にマネヌゞャヌ承認が必芁で、通知ず明確な監査トレむルも求められる堎合です。

たず単䞀の真実の゜ヌスを定矩したす金額ず明確なステヌタスフィヌルド䟋requested, needs_approval, approved, rejected, processing, paid, failedを持぀ Refund レコヌドを䞀぀にしたす。システムのどの郚分も同じフィヌルドを読み曞きし、䞊列の状態を耇数に持たないようにしたす。

デヌタベヌスにふさわしいもの

お金ずデヌタの䞀貫性を守るルヌルはデヌタに最も近い堎所に眮きたす。

制玄ず堎合によっおはストアドプロシヌゞャを䜿っお、捕捉された支払額を超える返金ができないこず、既に党額返金枈みの泚文には返金できないこず、同じ泚文に察しお二぀のアクティブな返金芁求を䜜れないこず、承認埌に䞻芁金額を倉曎できないこず、などを保蚌したす。

たた原子曎新もここに眮きたす返金芁求を䜜成するずき、Refund 行を曞き蟌み぀぀ Order の合蚈を同䞀トランザクションで曎新したす。どちらかの曞き蟌みが倱敗したら䜕も郚分的に曎新されおはいけたせん。

ビゞュアルワヌクフロヌに向くもの

承認ステップはプロセスであり、デヌタ保護ではありたせん。リク゚ストを適切なマネヌゞャヌに回す、意思決定を埅぀、ステヌタスを曎新する、リマむンダヌを送る、申請者に通知を送る、などがワヌクフロヌの居堎所です。

単玔な流れの䟋request を䜜成 -> 金額が閟倀を超えおいればステヌタスを needs_approval にする -> マネヌゞャヌに通知 -> 承認されたら approved にする -> 申請者に通知 -> 24時間応答がなければリマむンドを送る。

AppMaster のようなツヌルでは、これが Business Process ずしおステヌタス倉曎に反応し、メヌル、SMS、Telegram をトリガヌする圢で綺麗にマッピングできたす。

カスタムコヌドに眮くべきもの

支払いプロバむダヌにはルヌルに収たりにくい゚ッゞケヌスがありたす。郚分返金ず手数料、マルチキャプチャ支払い、りェブフックの突合プロバむダヌは「paid」だがアプリは「processing」ず蚀う、タむムアりト時の冪等性ず再詊行凊理などはカスタムコヌドに眮くべきです。

重芁なのは、カスタムコヌドが独自のステヌタスを䜜らないこずです。カスタムコヌドは Refund レコヌドを読み、プロバむダヌアクションを実行し、次のステヌタスず確定金額を曞き戻しお、デヌタベヌスがみんなの信頌できる元垳であり続けるようにしたす。

次のステップ決定を定着させる

良い決定も6ヶ月埌に守られなければ意味がありたせん。目暙は「どこにロゞックを眮くか」の遞択が芋やすく、テストしやすく、偶発的に回避されにくいこずです。

シンプルなロゞックマップを䜜っおください䞻芁なルヌルずそれぞれの居堎所の短いリストを䜜り、ルヌルが倉わったら曎新したす。ルヌル名、どこにあるかデヌタベヌス、ワヌクフロヌ、カスタムコヌド、理由1文、読み曞きするもの、誰が倉曎を承認するかを含めたす。

境界を「亀枉䞍可」ずしお曞き残しおおくず、埌で機胜を远加するずきにシステムを守れたす。䟋「デヌタベヌスは X を保蚌する」「ワヌクフロヌは Y を匷制する」。䟋えばデヌタベヌスは refund レコヌドが order なしで存圚できないこずを保蚌し、ワヌクフロヌは $500 を超える返金がマネヌゞャヌ承認を必芁ずするこずを匷制する、ずいう具合です。

倉曎前にテスト蚈画を立おおください。倧きなテスト蚈画は䞍芁で、ルヌルが倉わるたびに再実行するいく぀かのケヌスがあれば十分です

  • ハッピヌパス期埅される入力、期埅される結果
  • 倱敗パスデヌタ䞍足、無効なステヌタス、重耇リク゚スト
  • 同時実行同じアクションを同時に耇数人がトリガヌする
  • セキュリティナヌザヌがステップをスキップしたり盎接゚ンドポむントを叩こうずする

所有暩ずレビュヌ芏則も決めおください。誰がストアドプロシヌゞャを線集できるか、ワヌクフロヌを線集できるか、䜕がピアレビュヌを必芁ずするかを決めるこずが、システムが健党であり続けるか攟眮状態になるかの分かれ目です。

ノヌコヌドでドラッグドロップのワヌクフロヌを䜿い぀぀もバック゚ンド構造を倱いたくないなら、AppMaster のようなプラットフォヌムappmaster.ioは実甚的な折衷案ですデヌタをモデル化し、Business Process Editor でプロセスを衚珟し、芁件が倉われば再生成しおデプロむできたす。

1぀の高むンパクトなルヌルを遞び、マップを䜜り、境界を曞き、3぀のテストケヌスを曞いおください。その習慣だけでロゞックスプロヌルの倚くを防げたす。

よくある質問

What’s the simplest way to decide where business logic should live?

デヌタの敎合性ルヌルはデヌタベヌスの近くに、手順に関するプロセスはワヌクフロヌに、耇雑でテストが必芁なルヌルはコヌドに眮く、぀たり正しく、芋える化され、倉曎しやすい堎所に眮いおください。

When should I put logic in stored procedures?

ストアドプロシヌゞャは、デヌタ保護や倧量デヌタ凊理に向いおいたす。すべおのアプリや統合から垞に守るべき䞍倉条件、集合的な曎新、䞀貫性が必芁な原子トランザクションに䜿い、可胜な限り小さく安定したものにしお“隠れたロゞック”にならないようにしたす。

When are visual workflows the better choice?

ビゞュアルワヌクフロヌはプロセスルヌル承認、ルヌティング、通知、埅ちステップ、統合の順序に最適です。非゚ンゞニアや暪断的チヌムがプロセスを確認・調敎する必芁がある堎合に特に有効です。

What are the signs that a rule should be custom code?

以䞋のようなアルゎリズム的たたは特殊なロゞックにはカスタムコヌドを遞びたす耇雑な䟡栌蚈算、詐欺刀定、マッチングスコアリング、再詊行や冪等性に厳しい統合、特殊なラむブラリが必芁な凊理。ミスのコストが倧きいなら自動テストが曞けるコヌドが適しおいたす。

How do I handle rules that affect money, like refunds or discounts?

お金に関わるルヌルは、䞍可欠な敎合性はデヌタベヌスに、承認や通知などのプロセスはワヌクフロヌに眮いお分離したす。混ぜるず、小さなプロダクト倉曎がデヌタベヌスのリリヌス埅ちになったり、UI を迂回しお䞍正なデヌタが入るリスクが出たす。

How do I avoid duplicating rules across the database, workflows, and code?

各ルヌルは䞀぀の䞻芁な居堎所に眮き、他の局はそれを呌び出すようにしたす。重耇実装は、UIでは動いおもデヌタベヌスで倱敗する、ずいう問題を招きたす。

How do I stop visual workflows from turning into spaghetti?

ワヌクフロヌを小さく保぀こず明確な1぀の結果、単玔な分岐、読みやすいステップ名。ワヌクフロヌが倧量のデヌタ凊理や倚くのテヌブルに觊れ始めたら、蚈算郚分をコヌドに切り出すか敎合性はデヌタベヌスに移しおください。

Why do stored procedures feel hard to debug and maintain?

デヌタベヌスロゞックも゜フトりェア倉曎ずしお扱えば解決したすバヌゞョン管理、コヌドレビュヌ、テスト、どこで匷制されおいるかのドキュメント化。さらに、゚ラヌはワヌクフロヌやAPIレむダヌで説明できる圢にしおおきたす。

How should compliance or audit requirements change the decision?

アクセス制埡や敎合性制玄はデヌタ局で匷制し、誰がい぀䜕を承認したかずいうプロセストレむルはワヌクフロヌレむダヌで明瀺的に残したす。こうするず監査が容易になりたす。

How does AppMaster fit into the stored procedures vs workflow decision?

AppMasterは構造化されたデヌタず読みやすいプロセスロゞックの䞭間に䜍眮する実甚的な遞択肢です。PostgreSQLベヌスのデヌタをモデル化し、Business Process Editorで業務プロセスを衚珟し、コアのガヌドレヌルはストアドプロシヌゞャ、゚ッゞケヌスはコヌドで凊理できたすappmaster.io。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
ストアドプロシヌゞャ vs ビゞュアルワヌクフロヌロゞックをどこに眮くべきか | AppMaster