我在job
表中有一个布尔字段,称为external
。如果为true,则job
为外部,如果为false,则为内部。
如果job
是外部的,那么它需要在表中存储一个引用记录的ID
,如果是内部的,则需要在表中存储一个引用记录的client
。 ID
表。
我将需要用户选择staff
是内部的还是外部的,甚至在他们甚至不知道要选择的job
或client
之前。因此,尽管我不确定这是否是个好主意,但我不能只取消staff
字段。
对我来说,至少在表面上只使用一个存储external
的字段而不是在只有一个存储数据而另一个存储为Null的情况下使用两个字段才有意义。它是ID
,所以它不像将来需要更改数据类型并且不匹配。
这可能会引起任何问题吗?出于某种原因,这是不正确的做法吗?因为我有一种感觉,很可能是。
我在Flutter上使用Firestore,但我认为这个问题通常与数据库有关。
我们有类似的情况,子行可能指向不同的父表。我们所做的是,有两个字段:ReferencingTypeName(父表),ReferencingTypeId(PrentTable主键)。
问题是,在这种情况下,我们无法创建FOREIGN KEY。我们必须确保业务逻辑以正确的方式处理它。
[另外,我觉得您不需要单独的ID
列,因为您可以找出作业是否在ReferencingTypeName本身之外。
External