检查内容提供商条件的正确方法是什么?

时间:2015-07-14 12:56:29

标签: android sqlite android-contentprovider

我有sqlite数据库和内容提供程序包装它。有词典表和单词表。 Eeach词属于词典之一。每个词典也有不变的容量。所以我的内容提供商应允许在每个字典中只插入有限数量的单词。

"scheme"

Dictionaries
|-id (read-only)
|-capacity

Words
|-id (read-only)
|-dictionaryId (write-once)

我有几个选择:

1)对于每个新词典,我可以创建触发器,如果​​收集的词数大于容量,则会引发错误()错误。但是它会在某些情况下对每个插入进行查询。

2)我可以在提供者的insert()中检查这个条件。 (与上述相同的问题)

3)我可以将此检查传递给提供者的用户。例如,检查活动中的条件,将新单词添加到字典中。这是最优化的方法,因为每次添加新单词时都不需要进行查询。我可以在活动开始时查询字典中的单词数量,然后递增它并在不查询的情况下知道相关值。但在这里我还有另一个问题:如果我忘记检查这种情况或犯错误,条件将不起作用。

那么检查内容提供商条件的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我决定从数据库中提取所有处理数据的逻辑,并像使用容器一样使用db。原因是它使我免于对数据库进行测试,这对我来说并不容易。我认为更好的是认为数据库是健壮的,并且基于为应用程序组件创建测试。