Sync: add cloud learning and model updates
This commit is contained in:
@@ -117,7 +117,7 @@ OrgUnit (组织架构)
|
||||
| [DATA_MODEL_ORG.md](./DATA_MODEL_ORG.md) | 组织人事(org_units, staff, 异动/奖惩/教育/家庭等) | ✅ 完成 |
|
||||
| [DATA_MODEL_COMPLEX.md](./DATA_MODEL_COMPLEX.md) | 楼盘/区域(districts, business_areas, complexes, buildings, room_units, schools 等) | ✅ 完成 |
|
||||
| [DATA_MODEL_CLIENT.md](./DATA_MODEL_CLIENT.md) | 客源管理(clients, requirements, follow_logs, viewings, matches 等) | ✅ 完成 |
|
||||
| [DATA_MODEL_PROPERTY.md](./DATA_MODEL_PROPERTY.md) | 房源管理(properties 及配套 22 张表,含跟进/钥匙/委托/实勘/营销/产证/完成度等) | ✅ 完成 |
|
||||
| [DATA_MODEL_PROPERTY.md](./DATA_MODEL_PROPERTY.md) | 房源管理(properties 及配套 22 张表,含跟进/钥匙/委托/实勘/营销/产证/完成度/标签/收藏/保护/号码方审批等) | ✅ 完成 |
|
||||
|
||||
---
|
||||
|
||||
@@ -294,6 +294,10 @@ CREATE INDEX idx_domains_primary ON public.domains(tenant_id) WHERE is_primary =
|
||||
|
||||
### 3.18 系统设置(System Settings)
|
||||
|
||||
> **归属说明**:
|
||||
> - `lookup_categories` / `lookup_items` / `saved_filters` 为**跨模块**系统表,权威定义在本节。
|
||||
> - `property_tags` / `property_tag_relations` / `property_favorites` / `property_protections` / `number_holder_approvals` 属房源模块配套表,**权威定义已迁至** [`DATA_MODEL_PROPERTY.md §4.19-§4.22`](./DATA_MODEL_PROPERTY.md),本节不再重复 DDL(修复 S1/S2)。
|
||||
|
||||
```sql
|
||||
-- ============================================================
|
||||
-- 枚举/选项管理:跟进目的、标签、来源渠道 等运营维护的枚举值
|
||||
@@ -321,49 +325,7 @@ CREATE INDEX idx_lookup_items_category ON lookup_items(category_id)
|
||||
WHERE is_active = TRUE;
|
||||
CREATE UNIQUE INDEX idx_lookup_items_value ON lookup_items(category_id, value);
|
||||
|
||||
-- 自定义标签(速销/独家/唯一 等)
|
||||
CREATE TABLE property_tags (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name VARCHAR(50) NOT NULL,
|
||||
color VARCHAR(7), -- HEX 颜色
|
||||
is_system BOOLEAN NOT NULL DEFAULT FALSE, -- 系统预置标签不可删除
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
is_active BOOLEAN NOT NULL DEFAULT TRUE
|
||||
);
|
||||
|
||||
-- 房源 ↔ 标签 多对多
|
||||
CREATE TABLE property_tag_relations (
|
||||
property_id UUID NOT NULL REFERENCES properties(id) ON DELETE CASCADE,
|
||||
tag_id UUID NOT NULL REFERENCES property_tags(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (property_id, tag_id)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_property_tags_property ON property_tag_relations(property_id);
|
||||
CREATE INDEX idx_property_tags_tag ON property_tag_relations(tag_id);
|
||||
|
||||
-- 收藏(经纪人收藏房源)
|
||||
CREATE TABLE property_favorites (
|
||||
staff_id UUID NOT NULL REFERENCES staff(id) ON DELETE CASCADE,
|
||||
property_id UUID NOT NULL REFERENCES properties(id) ON DELETE CASCADE,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
PRIMARY KEY (staff_id, property_id)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_property_favorites_staff ON property_favorites(staff_id);
|
||||
|
||||
-- 保护房设置
|
||||
CREATE TABLE property_protections (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
property_id UUID NOT NULL UNIQUE REFERENCES properties(id) ON DELETE CASCADE,
|
||||
is_protected BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
reason TEXT,
|
||||
start_at TIMESTAMPTZ,
|
||||
end_at TIMESTAMPTZ,
|
||||
set_by UUID REFERENCES staff(id) ON DELETE SET NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- 筛选方案(保存的搜索条件)
|
||||
-- 筛选方案(保存的搜索条件,跨模块通用)
|
||||
CREATE TABLE saved_filters (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
staff_id UUID NOT NULL REFERENCES staff(id) ON DELETE CASCADE,
|
||||
@@ -375,25 +337,18 @@ CREATE TABLE saved_filters (
|
||||
);
|
||||
|
||||
CREATE INDEX idx_saved_filters_staff ON saved_filters(staff_id, module);
|
||||
|
||||
-- 号码方修改审批
|
||||
CREATE TABLE number_holder_approvals (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
property_id UUID NOT NULL REFERENCES properties(id) ON DELETE CASCADE,
|
||||
contact_id UUID NOT NULL REFERENCES property_contacts(id) ON DELETE CASCADE,
|
||||
applicant_id UUID NOT NULL REFERENCES staff(id) ON DELETE RESTRICT,
|
||||
approver_id UUID REFERENCES staff(id) ON DELETE SET NULL,
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'pending'
|
||||
CHECK (status IN ('pending','approved','rejected')),
|
||||
remarks TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
decided_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE INDEX idx_number_holder_approvals_status ON number_holder_approvals(status)
|
||||
WHERE status = 'pending';
|
||||
```
|
||||
|
||||
**已迁出本节的表**(权威源见子文档):
|
||||
|
||||
| 表名 | 权威定义位置 |
|
||||
|------|-------------|
|
||||
| `property_tags` | [`DATA_MODEL_PROPERTY.md §4.19`](./DATA_MODEL_PROPERTY.md) |
|
||||
| `property_tag_relations` | [`DATA_MODEL_PROPERTY.md §4.19`](./DATA_MODEL_PROPERTY.md) |
|
||||
| `property_favorites` | [`DATA_MODEL_PROPERTY.md §4.20`](./DATA_MODEL_PROPERTY.md) |
|
||||
| `property_protections` | [`DATA_MODEL_PROPERTY.md §4.21`](./DATA_MODEL_PROPERTY.md) |
|
||||
| `number_holder_approvals` | [`DATA_MODEL_PROPERTY.md §4.22`](./DATA_MODEL_PROPERTY.md) |
|
||||
|
||||
---
|
||||
|
||||
## 五、关键索引汇总与查询优化策略
|
||||
|
||||
Reference in New Issue
Block a user