[使用汉字word做主键数据表结构]
[keywords] 关键字表
word (PK)
id (自增长标识)
[articles] 文章表
id (PK)(自增长标识)
title
[articleskeywordsrelates] 关键字与文章的关系表
articleid 文章ID(PK) 联合主键
keyword 关键字(PK) 联合主键
获取 文章id 为5 的所有对应的关键字的时候是这样
select keyword from articleskeywordsrelates where articleid=5
[使用数字标识做主键数据表结构]
[keywords] 关键字表
word
id (PK)(自增长标识)
[articles] 文章表
id (PK)(自增长标识)
title
[articleskeywordsrelates] 关键字与文章的关系表
articleid 文章ID(PK) 联合主键
keywordid 关键字ID(PK) 联合主键
获取 文章id 为5 的所有对应的关键字的时候是这样
select word from keywords
where
id in(select keywordid from articleskeywordsrelates where articleid=5)
* keywords 数据量 和 articles 数据量差不多
如果后期扩展 keywords 表,增加一个 pinyin 字段
[keywords] 关键字表
word
id (自增长标识)
pinyin
当需求变更为
获取 文章id 为5 的所有对应的关键字的pinyin 和关键字 的时候
使用汉字主键是:
select * from keywords where word in(select keyword from articleskeywordsrelates where articleid=5)
使用数字主键是:
select * from keywords where id in(select keywordid from articleskeywordsrelates where articleid=5)
唉,还是很麻烦啊
多表关联很麻烦,谁有好的设计??