別々のテーブルに、同じ情報は入れない方がいい? 例えば、商品マスターに原価情報があって、 価格調整マスターにも原価情報がある。

通常、データベース設計では同じ情報を別々のテーブルに保存することは避けるべきです。これはデータの冗長性を避け、データの整合性を維持するための基本的な原則です。データを変更する必要が生じた場合、同じ情報を複数の場所で更新しなければならず、これが簡単に不整合を引き起こす可能性があります。

代わりに、データの共有や再利用のためには、リレーションシップ(関連付け)を使用することが一般的です。例えば、商品マスターと価格調整マスターの場合、共通のフィールドを持つ1つの商品マスターを持ち、価格調整マスターは商品マスターに対する外部キーを持つ形にすることが考えられます。

例:

python
from django.db import models class Product(models.Model): name = models.CharField(max_length=255) cost_price = models.DecimalField(max_digits=10, decimal_places=2) class PriceAdjustment(models.Model): product = models.ForeignKey(Product, on_delete=models.CASCADE) adjustment_value = models.DecimalField(max_digits=10, decimal_places=2)

このようにデータを設計することで、商品の原価情報は1つの場所に保持され、他のテーブルはそれを参照することができます。これにより、データの整合性が維持され、変更が発生した場合には一箇所だけ更新すれば済みます。

未分類

Posted by ぼっち