You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

词典应用SQL数据库设计求助:实现词条定义间关联查询

词典应用SQL数据库设计方案

核心表结构设计

1. 词条表 (entries)

存储所有单词、句子类型的词条,是核心基础表:

CREATE TABLE entries (
    entry_id INT PRIMARY KEY AUTO_INCREMENT,
    content VARCHAR(255) NOT NULL UNIQUE, -- 词条内容(如"Foo"、"Bar"、"苹果手机")
    type ENUM('word', 'sentence') NOT NULL -- 区分词条类型
);
  • entry_id:唯一标识每个词条,作为关联的主键
  • content:词条的具体内容,加UNIQUE避免重复词条
  • type:标记词条是单词还是句子,方便后续分类处理

2. 定义表 (definitions)

存储每个词条的所有定义,与词条表形成一对多关联:

CREATE TABLE definitions (
    definition_id INT PRIMARY KEY AUTO_INCREMENT,
    entry_id INT NOT NULL,
    content TEXT NOT NULL, -- 定义内容(如"Foo是XX,包含Bar...")
    FOREIGN KEY (entry_id) REFERENCES entries(entry_id) ON DELETE CASCADE
);
  • definition_id:定义的唯一ID
  • entry_id:关联所属的词条ID,删除词条时自动删除对应的定义

3. 词条引用表 (entry_references)

记录定义内容中引用的其他词条,解决“查询Foo定义时获取Bar的ID”的需求:

CREATE TABLE entry_references (
    reference_id INT PRIMARY KEY AUTO_INCREMENT,
    definition_id INT NOT NULL,
    referenced_entry_id INT NOT NULL,
    FOREIGN KEY (definition_id) REFERENCES definitions(definition_id) ON DELETE CASCADE,
    FOREIGN KEY (referenced_entry_id) REFERENCES entries(entry_id) ON DELETE CASCADE
);
  • definition_id:关联引用所在的定义ID
  • referenced_entry_id:关联被引用的词条ID(如Bar的entry_id)

业务逻辑实现

1. 添加词条与定义

  • 先将词条内容存入entries表,获取对应的entry_id
  • 添加该词条的定义到definitions表,获取definition_id
  • 解析定义内容,提取其中已存在的词条(比如从Foo的定义里识别出Bar),将definition_id和Bar的entry_id插入entry_references表

2. 查询词条定义及引用关系

要查询Foo的定义并获取其中引用的Bar的ID,用关联查询:

SELECT 
    d.content AS definition_content,
    er.referenced_entry_id,
    e.content AS referenced_entry_content
FROM entries main_e
JOIN definitions d ON main_e.entry_id = d.entry_id
LEFT JOIN entry_references er ON d.definition_id = er.definition_id
LEFT JOIN entries e ON er.referenced_entry_id = e.entry_id
WHERE main_e.content = 'Foo';

执行后可同时拿到Foo的定义内容,以及定义里引用的所有词条的ID和内容,前端直接用referenced_entry_id做跳转链接即可。

3. 多字词条处理

多字词条(如"苹果手机")的处理逻辑和单字词条完全一致:

  • 添加时将完整的多字词条内容存入entries表
  • 解析定义内容时,匹配完整的多字词条内容而非拆分单个字,将对应的entry_id存入entry_references表

内容的提问来源于stack exchange,提问作者SandStone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:27:05