# Parse Data Model The new Parse application uses a dedicated PostgreSQL database. All product identifiers are strings. ## Product Unique key: `productKey`. - `platform`: source platform, for example `jd` - `productId`: platform-native product ID - `productKey`: `${platform}:${productId}` - `asin`: temporary compatibility alias for reused UI code - `role`: `own` or `competitor` - `brand`, `title`, `model` - `category1`, `category2`, `category3` - `source`: `excel` or `fmode_gateway` - `rawData`: optional upstream payload ## ProductMetricDaily Unique key: `${productKey}:${date}`. - `productKey`, `date` - transaction, traffic, cart, order, and refund metrics ## ProductRelation Unique key: `${ownProductKey}:${competitorProductKey}`. - `ownProductKey`, `competitorProductKey` - `competitorBrand`, `category` ## ProductReview Unique key: `${productKey}:${reviewId}`. When the upstream has no review ID, use a stable content hash. - `platform`, `productId`, `productKey` - `reviewId`, `rating`, `title`, `content`, `reviewDate` - `helpful`, `verified`, `role`, `source` ## ImportBatch - `fileName`, `fileHash`, `type`, `status` - `total`, `success`, `failed`, `errorSummary` - `startedAt`, `finishedAt`