作为免责声明,我警告这里可能有错误的理解,希望不是,但可能。
这句话的语境是:
有一个现有的Windows VB时间表应用程序,部署在客户的Windows设备上(不是RT)。此应用程序创建一个本地SQL express存储,并通过SQL数据同步与Azure SQL DB同步。
Azure SQL DB进一步与存储在本地的主数据库同步(也通过SQL数据同步),主数据通常只在这个主数据库中更改,事务数据是同步到Azure的。
应用程序使用的表都在dbo模式下。
我正在创建一个Xamarin Forms移动(iOS, WP8, Droid,也许winRT,使用PCL)版本的应用程序(啰嗦,但你得到的想法),它使用一个Azure移动服务,指向Azure SQL数据库。到目前为止,它只使用了功能的子集。
问题:
现在的问题(可能已经很明显了)是我需要访问大多数表,这些表都在dbo模式下,我希望/想知道解决这个问题的最佳实践是什么。
如果我可以指示我的Azure移动服务使用dbo模式,并手动/脚本化地为生成的登录提供适当的权限。这是我迁移表时所需要的,以便包含所需的系统属性和第四个。
另一个建议是将azure移动服务同步操作所需的系统列添加到主数据库,将它们推送到azure数据库,然后在移动服务模式中创建所有所需数据的视图。我还不知道这是否会对服务造成任何限制。
当然总是可以选择将所有数据移动到dbo以外的模式中,但是这需要在其他系统上进行扩展工作,这可能会消耗相当多的时间,特别是由于我对它们不熟悉。
任何相关的信息、讨论或建议都是非常感谢的。
最好的选择可能是为数据库创建Azure Mobile Services系统属性。在Azure移动服务中,您需要五个特定字段:
- id -应该是一个唯一的字符串-最好在这里使用GUID
- __version -让AMS处理这个,默认/null允许
- __createdAt -通常自动生成在SQL Server上插入
- __updatedAt -让AMS处理此
- __deleted -应该为false,除非记录被删除(软删除支持)