# DBの設計について

**URL:** https://www.nocode-faq.com/t/topic/1378
**Category:** bubble
**Created:** [2021 年 4 月 8 日午後 12:41 UTC](https://www.nocode-faq.com/t/topic/1378 "2021-04-08T12:41:19Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Question\_user](https://avatars.discourse-cdn.com/v4/letter/q/53a042/32.png) [@Question\_user](https://www.nocode-faq.com/u/Question_user)
#### Post date: [2021 年 4 月 8 日午後 12:41 UTC](https://www.nocode-faq.com/t/topic/1378/1 "2021-04-08T12:41:19Z")

</div>

野球の成績管理機能を作ろうとしています。  
どのような設計をすることが最適なのかお聞きしたいです！

現状としては  
2つのTypeを用意しています。  
・打撃成績(試合ごとの情報、(例)ある試合での打数、四死球数、本塁打数など)  
・通算打撃成績(上記の打撃成績を積み重ねた通算の成績)

そのうえで、ワークフローにて通算打撃成績を計算しているのですが、  
①前回までのの通算成績に新しい成績を加える形で通算成績を更新する。  
②これまでの全ての打撃成績をまとめて通算成績を計算する。  
(わかりにくすぎると思うので、写真で補足します🙇‍♂️‍♂)

②の方が間違いが起きにくい、もしくは間違いが生じた際に訂正しやすいという利点があると思うのですが、一方でデータが増えるごとに処理が重たくなるという欠点もあるのかなと考えています。

①、②のどちらの方が良いか、またDB設計の観点などから他の良い方法があればご教示いただきたいです！

よろしくお願いいたします。

---

<div class="post-metadata">

### Author: ![Answer\_user](https://avatars.discourse-cdn.com/v4/letter/a/eb8c5e/32.png) [@Answer\_user](https://www.nocode-faq.com/u/Answer_user)
#### Post date: [2021 年 4 月 8 日午後 12:41 UTC](https://www.nocode-faq.com/t/topic/1378/2 "2021-04-08T12:41:19Z")

</div>

質問者  
②これまでの全ての打撃成績をまとめて通算成績を計算する。

①前回までのの通算成績に新しい成績を加える形で通算成績を更新する。

回答者  
②です。  
①の場合は、その時々でレポート上げる必要がある場合は別ですが、そもそも、通算打撃成績を出力することが必要な場合には、途中式をわざわざデータに保管する必要はないと思います。  
但し、  
下記の説明にある通り、長すぎるワークフローはスピードの観点からは望ましくないと思います。  
Move lengthy actions to API workflows  
Sometimes you may need to have really long workflows, with lots of actions, like the one below:  
Optimize for speed

> **[Optimize for speed | Bubble Development Best Practices Guide](https://docs.airdev.co/bubble-development-guide/steps/develop/optimize-speed)**
>
> Some best practices on how to make your Bubble app perform at its best.

②で動作が重くなる場合には、計算式部分をAirtableなどで計算させるのが良いと思います。  
結果だけをBubbleで出力させるイメージです。  
Airtable 側でも計算式結構あります。  
【参考】Leveraging formulas in Airtable

> **[How to Write your First Airtable Formula - Airtable](https://www.airtable.com/guides/customize/write-your-first-formula)**
>
> Ready to get started with Airtable formulas? Read on to go over the basics of the formula field and learn how to write your first formula.

過去 Bubbleで偏差値の計算するときも遅くなったときも、もとやじさんがそれで対応してた記憶があります。

質問者  
つばささん、ありがとうございます！！！  
なるほど、この場合は②の方が良いのですね。  
通算打撃成績を出力することが必要な場合には、途中式をわざわざデータに保管する必要はない  
bubbleで算出しようとするといくつかの成績に関して複数回の処理が必要(一つの式で算出しようとするとめっちゃ面倒臭い)だったので、ワークフローで記録して、簡単にテキストで表示できるようにしていました！  
ただ、その作業があまり良くないなという感覚があったので、実はこの作業をairtableでしようとしたことがあるんですよね・・・  
結局計算式的に実現できず、断念して・・・  
airtableに関しては勉強不足がすぎるので、ちょっともう一度みてみます！！！:man-bowing:

## 参考画像

 ![スクリーンショット 2021-03-17 22.49.23.png](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/3/38a0c8558abeb9d4b5fbaf97452fdef93cc57d75.png)

 ![スクリーンショット 2021-03-17 22.51.02.png](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/5/5337979acd9adfb3c97bab8420226004ab2bab4f.png)

 ![スクリーンショット 2021-03-19 21.09.26.png](https://us1.discourse-cdn.com/flex020/uploads/ncc_forum/original/2X/3/3e4fd7255c8344dc82028aa86180eeb923ce10e2.png)

## 参考URL

> **[Optimize for speed | Bubble Development Best Practices Guide](https://docs.airdev.co/bubble-development-guide/steps/develop/optimize-speed)**
>
> Some best practices on how to make your Bubble app perform at its best.

> **[Optimize for speed | Bubble Development Best Practices Guide](https://docs.airdev.co/bubble-development-guide/steps/develop/optimize-speed)**
>
> Some best practices on how to make your Bubble app perform at its best.
