表deal.tariff_id
内の関税に属していることを表すためにで 'NULL' 値を使用してもよろしいですか?tariff_data
affiliate_id=3
例えば:
mysql> select * from phone;
+----+------------------+
| id | name |
+----+------------------+
| 4 | HTC Sensation XL |
| 26 | iPhone 4s |
| 25 | iPhone 5 |
| 24 | Nokia C3-01 |
+----+------------------+
mysql> select * from tariff;
+----+-----------------+-----------------+--------------+-------------+
| id | name | tariff_duration | monthly_cost | description |
+----+-----------------+-----------------+--------------+-------------+
| 1 | Business Plan 1 | 24 | 5.00 | |
| 2 | Business Plan 2 | 24 | 10.00 | |
| 4 | Business Plan 3 | 24 | 15.52 | |
| 5 | Business Plan 4 | 24 | 18.52 | |
| 8 | Super Plan | 12 | 15.00 | |
+----+-----------------+-----------------+--------------+-------------+
mysql> select * from tariff_data;
+----+-----------+--------------+-------+
| id | tariff_id | affiliate_id | bonus |
+----+-----------+--------------+-------+
| 1 | 1 | 3 | 34.00 |
| 2 | 2 | 3 | 44.00 |
| 5 | 3 | 3 | 10.00 |
| 6 | 4 | 3 | 10.00 |
| 7 | 5 | 3 | 10.00 |
+----+-----------+--------------+-------+
deal
表には、表に記載されている関税が表示affiliate_id=3
さtariff_id=NULL
れ、それに属していtariff_data
ます。の行数を減らすためにこれを行いましたdeal
。NULL を含めない場合はtariff_id
、同じものを多数含める必要がphone_id
あり、その逆も同様です。
mysql> select * from deal;
+----+----------+-----------+--------------+--------+
| id | phone_id | tariff_id | affiliate_id | active |
+----+----------+-----------+--------------+--------+
| 1 | 4 | NULL | 3 | 1 |
| 3 | 24 | NULL | 3 | 1 |
| 9 | 24 | 8 | 4 | 1 |
| 10 | 25 | 8 | 4 | 1 |
| 11 | 26 | 8 | 4 | 1 |
+----+----------+-----------+--------------+--------+
NULL 値を使用しなかった場合の例を更新します。
mysql> select * from deal;
+----+----------+-----------+--------------+--------+
| id | phone_id | tariff_id | affiliate_id | active |
+----+----------+-----------+--------------+--------+
| 1 | 4 | 1 | 3 | 1 |
| 2 | 4 | 2 | 3 | 1 |
| 3 | 24 | 1 | 3 | 1 |
| 4 | 24 | 2 | 3 | 1 |
| 5 | 24 | 3 | 3 | 1 |
| 6 | 24 | 4 | 3 | 1 |
| 7 | 24 | 5 | 3 | 1 |
| 9 | 24 | 8 | 4 | 1 |
| 10 | 25 | 8 | 4 | 1 |
| 11 | 26 | 8 | 4 | 1 |
+----+----------+-----------+--------------+--------+