前提・実現したいこと
データベースにはmysqlを使い、送金を記録するシステムをつくりたいと考えています。
送金が行われたら記録をするのですが、想定される状況として
「注文なしで行われる送金」(送金のみ)と、
「注文ありで行われる送金」(何かを購入して送金した)と、
「一つの注文から複数の送金」が
あるとします。
この場合、以下のようなデータベース構造になるかと思います。
注文テーブル
ID | 取引先ID | 担当ユーザーID | 合計額 |
---|
注文詳細
ID | 品物ID | 品物数量 | 品物価格 |
---|
送金記録テーブル
ID | 送金額 | 担当ユーザーID | 注文ID |
---|
※担当ユーザーテーブルと取引先テーブルと品物テーブルは問題の箇所ではないため省略しています。
###問題点
ただ、上記のようなデータベース構造では送金記録テーブルの注文IDがない(NULL)パターンが発生することがあるので、外部キー制約にひっかかってしまい作成することができません。
NULLを許容するという方法も考えたのですが、調べたところ「極力nullはさけた方がいい(値ありか空値かnullかという確認がややこしくなるから)」と書かれていたため、not nullなデータベース構造にしたいと考えています。
今回の様なケースの場合でも、not nullなデータベース構造にすることはできるのでしょうか?
教えて頂ければ幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。