【发布时间】:2011-12-08 11:04:30
【问题描述】:
我正在开发一个应用程序,其中有一组数据,虽然在技术上不是静态的,但不会经常更改(例如,平均每年 3 或 4 次)。但是,其中一些数据是相互关联的。
此类数据的一个示例是州和县 - 理想情况下,我们希望在输入地址或位置时知道所有可用的州,但我们也想知道每个州的可用县,这样我们就可以向用户适当地显示该信息(即,当用户选择了一个州时,过滤掉不适当的县)。
过去,我在关系数据库中通过州和县表完成此操作,其中县链接回其所属的州,州和县链接到需要其信息的任何表.
然而,这些数据并不属于自己,而且在 Google 数据存储中,即使我们没有主动修改这些数据,锁定事务机制似乎也会导致锁定发生。处理此类数据的最佳方法是什么?是否为没有父级(无/空的父级)的片段提供一个实体?这会在将来导致锁定问题吗?
【问题讨论】:
-
为什么你认为事务机制会导致锁?事务仅适用于实体组。您希望针对哪个实体进行交易写入?
-
@DaveW.Smith 我说的是我正在加载的实体——在这个例子中,特别是州和县。我不打算对它们进行写入,但我认为我读到如果读取多个实体组,在事务期间读取会导致锁定多个实体组 - 不过我可能会误会。
-
我认为你错了。
-
@DaveW.Smith 啊,好吧,那更有意义。谢谢!
-
App Engine 的数据存储层是无锁的 - 它使用乐观并发,而不是锁定。
标签: google-app-engine google-cloud-datastore data-modeling