【发布时间】:2012-04-20 17:13:11
【问题描述】:
我在 Django 中有一个简单的数据模型,包含 Department 和 Role 类。 (例如清酒。)
Department 与 Role 具有一对多关系,Role 类包含用于标识特定实例的 ID。例如:
> Department: Sales
>> Role (1): Accounts
>> Role (3): Closing
> Department: Maintenance
>> Role (2): IT
>> Role (4): Equipment
这样做的缺点是每个角色都使用自己的全局 ID。因此,如果您要创建大量销售角色,然后再创建一个额外的维护角色,那么新的维护角色的 ID 将非常大,并且看起来“不同步”。
因此,我还想为每个角色创建一个部门特定 ID,如下所示:
class Role(models.Model):
department_id = models.IntegerField()
缺点是我也找不到方法:
1) 让现有角色将其现有 ID 转移到新的 department_id 字段,留下空白但防止未来出现空白:
> Department: Sales
>> Role (1): Accounts
>> Role (3): Closing
>> Role (4): *New Sales Role*
> Department: Maintenance
>> Role (2): IT
>> Role (4): Equipment
>> Role (5): *New Maintenance Role*
2) 或者,将default 值动态分配给扫描表以查找每个部门的所有角色并为其分配新 ID 的方法:
> Department: Sales
>> Role (1): Accounts
>> Role (2): Closing
>> Role (3): *New Sales Role*
> Department: Maintenance
>> Role (1): IT
>> Role (2): Equipment
>> Role (3): *New Maintenance Role*
我正在使用 South 来处理架构迁移。
【问题讨论】: