現在、ブランド管理システムの構築に携わらせていただいております。
まだまだ、勉強中の身で気になることだらけです。
MySQL+PHPの組み合わせにて構築を行っております。
1.データベース内に管理番号という項目があり、その項目はデータの呼び出し、更新、他のテーブルとの紐付けに使われ、
この値を書き換えるということはされない項目です。(auto increment、primary keyが設定されております)
現在は、bigint(20)と設定されておりますが、扱える桁数を万が一超えるとなるととても怖いのですが、これ以上桁数を増やすことはできるのでしょうか。
2.1の項目をweb上にて呼び出しを行い、1のような使い方の場合(呼び出した値への加工を行わない)、整数型では扱える範囲(PHP_INT_MAX)を超えている場合になった場合は影響があるのでしょうか。
先輩に聞いてもそう決まっているという回答しか答えていただけません。
詳しい方、是非教えていただけませんでしょうか。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
たぶん勘違いをしているか、運用方法が間違いっています
マスター系のテーブルで「品目を特定」するのにauto incrementで
発行されるidで管理することはありえません。
auto incrementでプライマリ処理を行うメリットは単に
「レコードを特定」するためのものですから、
品目を特定するidいわゆる品目コードは運用ルールを決める際の
要求定義、要件定義によってルール化される必要があります。
もちろん数値だけで構成されていてもよいですし、
アルファベットやハイフンなどを混ぜてもよいでしょう。
オペレーターの入力しやすさやタイプミスを減らすことを考えれば
固定長の数値のみがベターだと思います。
結論をいえばbigintの出る幕はありません。
No.2
- 回答日時:
1.
bigintで符号なしなら 0 から 18,446,744,073,709,551,615 まで扱えますが、それでも足りないのでしょうか?
これ以上は数値として扱えませんので文字列として処理するしかありませんが、その場合DB側で自動採番できませんのでプログラムで工夫する必要があります。
2.
DBから取得してきた値は、PHP側で適当な型に当てはめてくれます。
数値として扱えない場合は文字列として保持してくれますので、足し算・引き算等の算術計算をせずHTMLに出力するだけなら問題ありません。
No.1
- 回答日時:
とりあえず 1. だけ。
たしかに現状のシステムではそのブランドの点数なりなんなりでテーブルの行数が 18446744073709551616 を超えるならば問題でしょう。私はそれは杞憂だと思いますし、たぶん先輩も左記の値を超えるような事態は非現実的と考えているのでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- その他(メールソフト・メールサービス) Windows10付属のメール、なぜ設定が劇的に簡単になったのか? 1 2022/12/16 13:14
- Java Java 南京錠 2 2023/02/04 11:46
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Visual Basic(VBA) VBAを使いシート間で貼り付け 3 2023/03/14 20:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLでデータベースにデータin...
-
mysql+php 日付別料金データで...
-
phpでテーブルを作る際変数によ...
-
PHP+MySQLで、MySQLの信号機が...
-
php sqlite count 列数取得
-
phpにて出欠登録管理を作成して...
-
<VB.NET>INSERT文でDBにデータ...
-
PHPで[]の使い方について
-
stringaddslashes 半角¥が消える
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
Pro*Cの構文エラー
-
データベースに存在するデータ...
-
MySQLで0で検索できない
-
codeigniter 複数モデルでトラ...
-
MySQLにHTMLタグを挿入したい
-
SELECT結果から動的にコンボボ...
-
XAMMPが起動しません。
-
SQLiteでカラムを追加
-
phpのupdate,sql文にて連番カラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLでデータベースにデータin...
-
変数にNULLを代入したい
-
csvをDBへ読み込んだら、NULLが...
-
OracleからAccessへのインポート
-
日またぎの計算
-
カラムにデータがあるかないか...
-
SQLで返り値が空とでる
-
phpでテーブルを作る際変数によ...
-
PHPでフォームからデータDBに書...
-
php sqlite count 列数取得
-
テーブルの、colspan="0"のIEと...
-
PHP PDOを利用してカラムの削除...
-
テーブルに行を追加
-
ヒアドキュメントでSQLを書く事...
-
PHPでPostgreSQLのテーブルを表...
-
DB Error: no such field
-
Accessへ日付をINSERT
-
phpを使用し、カテゴリー別に表...
-
クエリObjectをforeachで回す時...
-
phpにて出欠登録管理を作成して...
おすすめ情報