1

我正在开发一个 Android 应用程序和 JSON Web 服务。双方都将拥有一个数据库,并且它们都将具有相同的数据库架构。

在客户端,Order、 QAP 和 Defect 是来自服务器端数据库的副本。我无法向这些表添加更多行。

用户将有一个带有缺陷名称和四列的表单:CRSCRF和。在这四列上,用户将插入一些值。缺陷名称为,CRS、CRF、MA 和 MI 值将成为当前电子报告的一部分。MAMIDefect.description

为了存储这些值(CRS、CRF、MA 和 MI),我使用eReportDefect

我的问题是用户可以添加更多缺陷。如果我可以在缺陷表上添加更多行,我不会有问题,但我不能。为了解决这个问题,我添加了UserDefect表,但我不确定这是否是一个好方法,因为我有两个表eReportDefectUserDefect几乎相同。

对于 EReport 中填写的每个缺陷,我都有“另一个问题”,我可以有零个、一个或多个图像(表eReportDefImgUserDefImg)。

这个设计“OK”还是可以改进?

在此处输入图像描述

4

1 回答 1

0

我可以在主键定义中看到一些“老派”的方法。;-) 关于表eReportDefect,您的键是多余的,因为据我了解“ defectId”已经是唯一的,所以“ qapId”和“ eReportId”只会导致索引更大,因此更慢 - 在这种情况下,列位置也不是最好的. 在DefectDefectImg表中是正确的,而在eReportDefImg.

好的,回到正题,如果您无法修改eReportDefect表,则没有其他方法可以创建另一个表。

还有一点,图片。如果我理解正确,您可以修改 table eReportDefImg,因此不需要UserDefImgtable 甚至 Image 表。除了这三个表,您还可以使用一个DefectImg具有以下功能的表:

PK image_id
FK userDefectId
FK defectId

如果userDefectIdIS NULL,则defectIdIS NOT NULL 并指向eReportDefect,反之亦然。这将为您节省存储空间和耗时的连接UserDefectImgeReportDefImg表。如果一张图像可以适应多个缺陷,那么这些实际上是需要的。

于 2012-09-14T14:02:18.703 回答