gpt4 book ai didi

java - 为字典创建表?

转载 作者:行者123 更新时间:2023-12-02 00:52:24 25 4
gpt4 key购买 nike

我正在 SQLite 中制作字典数据库,需要一些提示。我的 SQL 有点生疏了;) 你认为这个 SQL 很好吗?它是通过 Java JDBC 完成的。

这用于创建表。

CREATE TABLE word (
id INTEGER,
entry STRING,
pos STRING
);

CREATE TABLE translation (
word_id INTEGER REFERENCES word(id),
entry STRING
);

当填充数据时,我给每个单词一个数字(id),并且单词翻译得到与 word_id 相同的数字。提取特定单词翻译的最佳方法是什么?

最佳答案

word_id INTEGER REFERENCES word(id) 实际上并不在 MySQL 上创建外键。即使您使用的是 InnoDB,它也需要显式的 FOREIGN KEY 声明。

此外,我可能会为两个表的 ID 使用自动编号,然后将其标记为主键。

因此,考虑到这两点,再加上 mpacona 关于需要多对多关系的多个翻译的注释:

CREATE TABLE word (
word_id UNSIGNED INTEGER AUTOINCREMENT PRIMARY KEY,
entry TEXT,
pos VARCHAR(50)
);

CREATE TABLE translation (
translation_id UNSIGNED INTEGER AUTOINCREMENT PRIMARY KEY,
word_id UNSIGNED INTEGER,
lang VARCHAR(5),
entry TEXT
);

CREATE TABLE word_translation (
word_id UNSIGNED INTEGER,
translation_id UNSIGNED INTEGER,
PRIMARY KEY (word_id, translation_id),
INDEX (word_id),
INDEX (translation_id),
FOREIGN KEY fk_word_id (word_id) REFERENCES word(id),
FOREIGN KEY fk_translation_id (translation_id) REFERENCES translation(id)
);

编辑:我不确定 pos 是什么,所以我将其限制为 50 个字符。如果您需要超过 32k 字符,您可能还需要将 TEXT 调整为较大的变体之一。

将 lang 更新为 5 个字符以支持 en-us 样式语法。

关于java - 为字典创建表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2477153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com