質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2229閲覧

【Rails / Ruby】基本的な数字が入るであろうカラムに、string型とinteger型の使い分けに関して。 マイグレーションファイルを編集時の質問になります。

nyako

総合スコア45

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/06/07 13:00

様々なWebサイトを拝見していて、

ruby

1 2priceカラムを string or integer 3phone_numberカラムを string or integer 4reservation_numberカラムを string or integer 5

など、どちらにも統一されていないのですが、

数字であってもstringにするのでしょうか。

数字はinteger / 文字列はstringと認識しています。 マイグレーションファイルを編集するときに迷っております。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

phone_numberの場合、頭の0が抜ける事が問題になりうるのでstringです。
reservation_numberも同様に頭の0が問題になりますし
今後数字以外が入る可能性や数値の最大数を超える可能性なども考えますとstringの方が無難のように思います。

priceはintegerが無難に思います。
但し21億を超える可能性がある場合はlimitを適切につけるorbigintを用いるなどする必要があります。


数字はinteger / 文字列はstringと認識しています。

文字列はいいですが、integer数値という認識のほうがよいと思います。
算術演算を行った結果に意味があるのならintegerを選ぶべきでしょう。

また、どれくらいの範囲を扱えるか?という点もintegerstringを考える上で重要です。
デフォルトでは

種類制限具体的に
string文字数0~255文字
integerbit幅32bit (-2147483648~+2147483647)

となります。

投稿2021/06/07 13:30

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyako

2021/06/07 13:38

完全に理解ができました。ずっとモヤモヤしていたので。。 ご丁寧に本当にありがとうございました!
guest

0

数字はinteger / 文字列はstringと認識しています。

違います。数integer、それ以外の文字列はstringです。

電話番号は数値として計算すべきものではない(先頭に0も入る)のでstring一択です。

投稿2021/06/07 13:01

maisumakun

総合スコア145201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/06/07 13:07 編集

「reservation_number」のようなものは、入る中身や運用次第でどちらが適当なのか考えないといけません。 priceは(通常の場合)数値として計算する値ですのでintegerが適切です。
nyako

2021/06/07 13:37

masuimakun様いつも的確でご丁寧なご回答ありがとうございます!しっかりと理解できていなかったのでよく分かりました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問