我有一张users
桌子。我想跟踪我所做的所有更改,姓名,电话等。我想创建一个额外的表changes
来存储用户的id
上一个和下一个版本。我保留所有users
记录。这是一个好方法吗?
我也想过使用单独的表来记录历史,见下文
或者,使用单个表并从timestamp
或跟踪其版本id
(因为它是增量),但我认为这是一个糟糕的解决方案。
谁能向我解释以下两个查询之间的区别?尽管它们看起来相同,但结果却不同。
select concept.concept_id, concept.PARENT_ID
from ebti_thes_concept_v concept
start with PARENT_ID = '11025'
connect by parent_id = prior concept_id
and exists (..)
Run Code Online (Sandbox Code Playgroud)
在第二个中,exists
谓词从connect by
子句移动到where
子句。
select concept.concept_id, concept.PARENT_ID
from ebti_thes_concept_v concept
where exists (..)
start with PARENT_ID = '11025'
connect by parent_id = prior concept_id;
Run Code Online (Sandbox Code Playgroud) 我有以下设计。每个用户都有它自己的联系人,它自己的主机并将它们分配给一个只属于他的域。
我想确保您分配给域的主机属于该域分配给的用户。
这是我必须在我的应用程序逻辑中确保的东西吗?
如果我设置domains.user_id
foreign key
为参考host.user_id
,user_id.id
它会消除我的问题吗?
顺便说一句,谁能建议我为我的架构设计更好的设计?