177 lines
4.3 KiB
JSON
Executable File
177 lines
4.3 KiB
JSON
Executable File
{
|
|
"version": "1.1",
|
|
"id": "target-schema",
|
|
"title": "목표 스키마에 추가되는 mention 관계",
|
|
"question": "목표 모델에서 기존 users는 mentioned 사용자 역할로 feed_item_mentions에 어떻게 연결되는가?",
|
|
"type": "erd",
|
|
"direction": "LR",
|
|
"audience": [
|
|
"백엔드 개발자"
|
|
],
|
|
"summary": "기준선 관계에 feed_items와 기존 users를 잇는 feed_item_mentions 관계가 추가된다.",
|
|
"alt": "기존 users를 mentioned 사용자 역할로 재사용해 feed_item_mentions와 연결한 5노드 목표 관계도.",
|
|
"long_description": "왼쪽의 users와 pages가 중앙의 feed_items에 연결된다. 오른쪽에는 highlights와 feed_item_mentions가 놓인다. feed_items는 두 엔티티에 각각 연결되고, 기존 users도 mentioned 사용자 역할로 feed_item_mentions에 연결된다.",
|
|
"source_context": {
|
|
"document": "docs/n+1liner/final/document.md",
|
|
"document_sha256": "f9e048a68db0ab82078955bf611b06a71a0033539e0c87ff0aa0d620a3126e36",
|
|
"anchor": {
|
|
"kind": "heading",
|
|
"value": "3.1 관계와 스키마",
|
|
"line": 44
|
|
}
|
|
},
|
|
"composition": {
|
|
"profile": "component-flow",
|
|
"diagram_only": true,
|
|
"reference_ids": [
|
|
"payment-event-flow"
|
|
],
|
|
"rationale": "기준선의 연결 경로와 feed_item_mentions를 통한 추가 연결을 하나의 방향성 있는 관계망으로 읽게 하는 구조가 목표 모델의 차이를 직접 드러낸다.",
|
|
"focus_node": "feed-items"
|
|
},
|
|
"groups": [],
|
|
"nodes": [
|
|
{
|
|
"id": "users",
|
|
"label": "users",
|
|
"kind": "entity",
|
|
"role": "source",
|
|
"evidence": [
|
|
{
|
|
"start_line": 46,
|
|
"end_line": 46
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "pages",
|
|
"label": "pages",
|
|
"kind": "entity",
|
|
"role": "source",
|
|
"evidence": [
|
|
{
|
|
"start_line": 47,
|
|
"end_line": 47
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "feed-items",
|
|
"label": "feed_items",
|
|
"kind": "entity",
|
|
"role": "store",
|
|
"evidence": [
|
|
{
|
|
"start_line": 46,
|
|
"end_line": 46
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "highlights",
|
|
"label": "highlights",
|
|
"kind": "entity",
|
|
"role": "sink",
|
|
"evidence": [
|
|
{
|
|
"start_line": 48,
|
|
"end_line": 48
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "feed-item-mentions",
|
|
"label": "feed_item_mentions",
|
|
"kind": "entity",
|
|
"role": "sink",
|
|
"evidence": [
|
|
{
|
|
"start_line": 56,
|
|
"end_line": 56
|
|
}
|
|
],
|
|
"assumption": false
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "users-have-feed-items",
|
|
"from": "users",
|
|
"to": "feed-items",
|
|
"label": "1:N",
|
|
"kind": "relationship",
|
|
"evidence": [
|
|
{
|
|
"start_line": 46,
|
|
"end_line": 46
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "pages-have-feed-items",
|
|
"from": "pages",
|
|
"to": "feed-items",
|
|
"label": "1:N",
|
|
"kind": "relationship",
|
|
"evidence": [
|
|
{
|
|
"start_line": 47,
|
|
"end_line": 47
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "feed-items-have-highlights",
|
|
"from": "feed-items",
|
|
"to": "highlights",
|
|
"label": "1:N",
|
|
"kind": "relationship",
|
|
"evidence": [
|
|
{
|
|
"start_line": 48,
|
|
"end_line": 48
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "feed-items-to-mentions",
|
|
"from": "feed-items",
|
|
"to": "feed-item-mentions",
|
|
"label": "피드 아이템",
|
|
"kind": "relationship",
|
|
"evidence": [
|
|
{
|
|
"start_line": 56,
|
|
"end_line": 56
|
|
}
|
|
],
|
|
"assumption": false
|
|
},
|
|
{
|
|
"id": "users-to-feed-item-mentions",
|
|
"from": "users",
|
|
"to": "feed-item-mentions",
|
|
"label": "mentioned 사용자",
|
|
"kind": "relationship",
|
|
"evidence": [
|
|
{
|
|
"start_line": 56,
|
|
"end_line": 56
|
|
}
|
|
],
|
|
"assumption": false
|
|
}
|
|
],
|
|
"legend": [],
|
|
"metadata": {
|
|
"rationale": "기준선 관계를 유지하면서 line 43의 feed_item_mentions가 기존 users를 mentioned 사용자 역할로 참조하는 관계만 추가했다."
|
|
}
|
|
}
|