我是MSSQL开发人员,他最近负责使用DynamoDB构建新应用程序,因为我们使用AWS并且我们需要高度可扩展的数据库服务。
我最关心的是数据完整性。例如,我为所有用户提供了一个表格,其中每一行都需要有一个用户名,电子邮件和名称字段,所有字符串,以及一个已验证的字段为int。无论如何要求该表中的所有条目都具有那些字段并且具有该特定类型吗?
由于应用程序是在PHP中我使用Kettle作为我的ORM,这应该可以防止我弄乱数据完整性,但另一位开发人员表示担心我们是否曾经添加过另一个应用程序或是否有人手动通过控制台更改某些类型。 https://github.com/inouet/kettle
答案 0 :(得分:1)
目前,不,您有责任维护项目的完整性,以确定是否存在不是基表上的键的属性。但是,您可以使用LSI和GSI来强制执行属性的数据类型(尽管我认为这不是推荐的模式,因为它可能导致分区热量,尤其是对于值范围较小的属性)。例如,验证似乎只需要0或1作为值,因此如果您创建一个PK =验证的GSI,其中Verified是一个数字,则对基表的写入可能会被验证的GSI限制。