在我的应用程序中,我有一个 Profile 实体,它有一些子实体,例如 ProfileAccount、ProfileLink 等。它们通常在事务中更新,例如
def update_profile(key):
profile = db.get(key)
accounts = db.query("SELECT * FROM ProfileAccount WHERE ANCESTOR IS :1", profile)
# do something with accounts and profile
profile.put()
我用 db.run_in_transaction(update_profile, key) 调用它,但我需要有一个管理日志,记录更新配置文件时发生的所有事情,所以我创建了一个通用 AdminLog 实体,其中包含对配置文件的引用、时间戳和任意字符串数据。这将在稍后处理以检查自上次用户登录以来发生的情况。
问题是因为 AdminLog 与 Profile 不属于同一个实体组,我不能将它添加到同一个事务中,但另一方面,我认为将所有这些日志放在同一事务下并不聪明实体(个人资料),因为它不是基本数据。
我想到的一件事是配置文件上的 StringList,每次登录时都会清除它,所以这样我就可以拥有配置文件中发生的所有事情。您认为这是一个不错的方法,或者对于这种情况还有其他解决方法吗?
提前感谢您的任何提示