iPAS 備考專區 登入

iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用・114 年第二次・L22・第 34 題

圖形資料庫如何儲存「按讚」的時間和裝置資訊?

原題

在圖形資料庫(Graph Database)中建模社群平台資料時,若每筆「按讚」行為都包含時間戳記(Timestamp)與裝置類型(Device Type)等資訊。若希望同時保留使用者與貼文之間的互動關係,並能有效查詢「按讚」的行為屬性,下列哪一種設計方式最為合適?

白話

要用圖形資料庫(Graph Database)建模社群平台,其中「按讚」這個行為附帶了時間和裝置資訊。目標是同時保留「用戶和貼文之間的按讚關係」,並且能查詢這筆按讚的屬性(何時、用什麼裝置)。

問你:在圖形資料庫裡,帶屬性的「按讚」互動該怎麼設計?

一句話總結

在圖形資料庫裡,帶屬性的互動行為(如按讚附帶時間和裝置):應把互動當成帶屬性的邊(Edge/Relationship),把時間戳記和裝置類型存在邊的屬性裡,邊連結用戶節點和貼文節點。

情境

先感受問題:按讚不只是「有沒有按」

「連動社群」平台的工程師志遠要設計一個圖形資料庫,記錄用戶和貼文的按讚關係。

問題是:每次按讚不只是「用戶 A 按了貼文 X 的讚」,還附帶資訊:

時間戳記:2025-03-15 14:32:07

裝置類型:iOS App

按讚類型:愛心

這些附帶資訊要怎麼存?存在哪裡?怎麼設計才能快速查詢「這個按讚是哪台裝置、什麼時候按的」?

舊方法

亂放按讚資訊會有什麼問題

  1. 存進用戶節點,用戶節點膨脹:把「用戶 A 按讚的所有記錄」全存進用戶節點,一個用戶按了 10 萬個讚,節點就有 10 萬筆資料,查詢速度大幅下降,且跟「用戶個人資料」混在一起結構混亂。
  2. 把按讚當獨立節點,查詢要多跳一層:若「按讚」是節點,需要「用戶→按讚→貼文」兩層跳轉,比「用戶→(按讚)→貼文」一層跳轉多一步,查詢複雜且效能較差。
  3. 放進關聯式資料庫,失去圖的優勢:圖形資料庫的強項是快速走訪多層關係,放進 RDBMS 後,「誰按過和某人相同帖子的讚」這類查詢就需要多次 JOIN,效能不佳。
  4. 不知道邊可以有屬性:許多人知道節點可以有屬性,但忘了圖形資料庫的邊(Relationship)也可以有屬性,導致設計繞路。
  5. 屬性放錯地方,查詢語義混亂:若把按讚的裝置類型存進貼文節點,「查詢某貼文被哪些裝置按過」就跟「查詢貼文本身的屬性」混在一起,語義不清晰。

新方法

按讚當邊,時間和裝置掛在邊的屬性上

志遠採用「帶屬性的關係邊」設計:

節點:User(用戶 A)

節點:Post(貼文 X)

邊:LIKED(用戶 A 按讚貼文 X)

邊的屬性 timestamp: 2025-03-15 14:32:07

邊的屬性 device_type: iOS App

邊的屬性 reaction_type: 愛心

這樣的設計讓查詢非常直觀:「找出用戶 A 在 iOS 上按讚的所有貼文」只需要沿著邊走,過濾邊的屬性 device_type='iOS'。關係和屬性都在一起,既保留了圖的連結語義,又能附加行為細節。

這就是選項 B 講的:將「按讚」資訊作為邊的屬性(Property)儲存,連結使用者與被按讚的貼文節點。

錯選項

為什麼其他選項是錯的

A將「按讚」視為節點(Node),與使用者建立邊(Edge)

字面在說什麼

把「按讚」設計成一個獨立節點,然後用戶和這個節點之間有一條邊。

為什麼不對

這個設計把「用戶→按讚節點→貼文」拆成兩層,查詢和走訪要多一步。更關鍵的是,這樣的設計缺乏了「按讚連結用戶和貼文」的直接語義,圖的結構語義變模糊。只有當按讚需要連接到其他多個節點(如按讚後又觸發了評論、獎勵等複雜關係)時,才考慮把它升格為節點。

誰會選錯

認為「有屬性的東西一定要當節點」的人,不知道圖形資料庫的邊也可以帶屬性。

C把「按讚」資訊直接寫入使用者節點中作為屬性

字面在說什麼

用戶節點上加一個屬性叫「按讚紀錄」,把所有按讚資訊存進去。

為什麼不對

用戶節點會無限膨脹(按 10 萬個讚就有 10 萬筆),且按讚紀錄和用戶個人資料混雜,結構不清。圖形資料庫的節點應該是「實體」(用戶本身),不應把「行為」塞進去。

誰會選錯

把「NoSQL 文件型資料庫把所有資訊嵌入同一文件」的思路套到圖形資料庫設計上的人。

D建立「按讚紀錄表」並將資料存入關聯式資料庫

字面在說什麼

不用圖形資料庫設計,改回關聯式資料庫建表處理。

為什麼不對

題目明確在問「圖形資料庫中的設計方式」,這個選項直接放棄圖形資料庫、換成 RDBMS,完全偏離題目要求。再者,關聯式資料庫對社群網路多層關係查詢需要多次 JOIN,效能遠不如圖形資料庫。

誰會選錯

對圖形資料庫設計不熟悉,直覺回到熟悉的 SQL 關聯式資料庫的人。

變形題

同個考點下次怎麼變形

延伸

想再往下看,這 5 個

答案、題目或解析有問題?回報這題

出處:iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目二 大數據處理分析與應用 第 34 題

看官方原文 PDF

原題 © 經濟部產業發展署,AITerms.tw 僅作教學解析使用,本站解析以 CC BY-NC-SA 4.0 授權。