假设有人正在用 PHP 编写多语言词典,他想让人们同时提交英语和西班牙语的单词和定义,但想要对其进行跟踪以便过滤。到目前为止的表格如下:
- 字
- 语言
- 定义
语言在一个单独的表中,以便以后扩展。话虽如此,创建一个单独的表以将单词和定义与其各自的语言相关联并在查询时加入,或者将语言列直接添加到引用中的id
列的每个表中是更好的做法languages
吗?
假设有人正在用 PHP 编写多语言词典,他想让人们同时提交英语和西班牙语的单词和定义,但想要对其进行跟踪以便过滤。到目前为止的表格如下:
语言在一个单独的表中,以便以后扩展。话虽如此,创建一个单独的表以将单词和定义与其各自的语言相关联并在查询时加入,或者将语言列直接添加到引用中的id
列的每个表中是更好的做法languages
吗?
标题总结了它。我对 PHP 相当满意,并且很乐意使用从 MySQL 中提取的值来执行我需要的操作,但是为了扩展我的知识,我一直在想这是否是一种更有效的技术长跑。它们是等效的(由于最终处理量大致相同),还是存在其中一个比另一个具有明显优势的情况?
例如,3NF 的数据库始终是 1NF 和 2NF;这适用于 4、5 和 6 吗?
我一直想使用连接有一段时间了,但我在可视化输出时遇到了问题,所以我知道如何使用它。
假设我有 2 个表:
CREATE TABLE Cities (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
city tinyblob
);
CREATE TABLE Users (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username TINYBLOB,
city INT UNSIGNED,
FOREIGN KEY (city) REFERENCES Cities (id)
);
如果我的应用程序要运行 SQL 查询来获取用户的个人资料数据,我将如何使用联接来获取与用户记录关联的城市,以及输出的记录将如何显示?