別々のテーブルに、同じ情報は入れない方がいい? 例えば、商品マスターに原価情報があって、 価格調整マスターにも原価情報がある。
通常、データベース設計では同じ情報を別々のテーブルに保存することは避けるべきです。これはデータの冗長性を避け、データの整合性を維持するための基本的な原則です。データを変更する必要が生じた場合、同じ情報を複数の場所で更新しなければならず、これが簡単に不整合を引き起こす可能性があります。
代わりに、データの共有や再利用のためには、リレーションシップ(関連付け)を使用することが一般的です。例えば、商品マスターと価格調整マスターの場合、共通のフィールドを持つ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つの場所に保持され、他のテーブルはそれを参照することができます。これにより、データの整合性が維持され、変更が発生した場合には一箇所だけ更新すれば済みます。

ディスカッション
コメント一覧
まだ、コメントがありません