私はユーザテーブルを持っており、ユーザテーブルの複製であるdeleted_usersというバックアップテーブルを作成したいと考えています。ユーザーが削除されると、レコードをユーザーテーブルからdeleted_usersテーブルに移動します。Djangoモデルの継承を使用してテーブルを複製する
class LCUser(models.Model):
email = models.EmailField(max_length=100,unique=True)
password = models.CharField(max_length=100)
first_name = models.CharField(max_length=100)
last_name=models.CharField(max_length=100)
class Meta:
db_table = "user"
class LCUserDeleted(LCUser):
deleted_at = models.DateTimeField(auto_now_add=True,null=True)
class Meta:
db_table = "deleted_users"
どのように私はですべて1を入力せずに、すべてのフィールドを持つ第二のテーブルを作成することができ、私は上記のように試みたが、これは2つのフィールド(lcusers_ptr_idとdeleted_at)ですべてのフィールドを持つユーザーテーブルとdeleted_usersテーブルを作成し、 1 ?
これは悪いデザインだと思います。なぜあなたはほぼ同じ構造のために別のテーブルを持っていたいのですか?なぜ、一つのテーブルに 'deleted_at'フィールドがあり、このフィールドが' None'でuserが削除されていないのであれば、その逆もあります。 –
は、各レコードがシステム内のユーザーであると想定しています。ユーザーが削除され、電子メールを使用して同じユーザーを作成しようとすると、電子メールは一意でなければならないため、許可されません。この状況に対処するより良い方法はありますか? –
@WilletteLynch:Djangoにはすでに "is_active"フィールドがあり、Falseになるとユーザは非アクティブと見なされます。ユーザーのシステムのどこかに外部キーがある場合、ユーザーが非アクティブになったり削除されたりすると、そのデータはすべて消えてしまいますか? – RemcoGerlich