什么样的变化,我需要为我的表到AppEngine上的BigTable工作?
-
06-09-2019 - |
题
让我们说我有以下的预订数据库的用户
user_id
fname
lname
和它们的票强>
ticket_id
user_id
flight_no
和相关联的航班强>
flight_no
airline
departure_time
arrival_time
唉,要是我需要改变移动这个谷歌的AppEngine?的
我明白AppEngine上的不允许加入的。
这是否意味着我的表应该成为领域的一个大schmudge都集中在一起?
<强>预订强>:
user_id
fname
lname
ticket_id
flight_no
airline
departure_time
arrival_time
在换句话说,所有我的查询现在对同一个表运行?
解决方案
什么样的变化,你需要主要取决于哪些查询你需要运行,不会对你有什么样的数据。最有可能你只需要添加几件事情。
请查询列表,然后看看对查询的限制。你已经找到了问题的人后,试图用的BigTable的考虑限制重写他们。
例如,如果你经常需要找票的数量航班的列表,你将不只是能够做到:
SELECT flight_no, COUNT(*) FROM flights JOIN tickets ON tickets.flight_no = flights.flight_no GROUP BY flight_no
所以你需要添加票的柜台flights
和递增/递减,创建/删除票时。
这个好的一面是,BigTable的力量,你有一个非常可扩展的数据库设计。不好的一面是,它会浪费你很多时间,当你真的不的需要的一个可扩展的设计。
其他提示
您可以通过一个Web服务使用谷歌从应用的AppEngine真正SQL关系数据库。
一种这样的web服务是Rdbhost,在 http://www.rdbhost.com 。
它涉及到它的妥协,尤其是速度,在每个页面视图需要其他后端HTTP网页请求到数据库服务器,但它可以让你使用你已经有了SQL设计知识。
不隶属于 StackOverflow