多国语言数据库设计

分类:

  1. 数据库级别
  2. 表级别
  3. 字段级别

数据库级别,不同语言使用不同的数据库,数据库中通常包含许多并不涉及到多语言的表,会出现冗余表。

着重介绍表和字段级别:

字段级别(ID, Description, Description_En, Description_Fr...)

ID为主键

优点:

  1. 操作简单,一条记录搞定

缺点:

  1. 不利于扩展,如添加新语言,需要添加字段
  2. 不同语言加载不同字段

表级别

表1(ID)ID为主键

表2(ID, LanguageID, Description)ID和LanguageID 为复合主键

优点:

  1. 减少冗余,按需添加
  2. 加载方便,按语言进行过滤
  3. 扩展方便,添加新语言时不需调整表结构

缺点:

  1. 操作两个表

附:

id keyid langid title 
-------------------------------- 
1 1 1 广 
2 1 2 廣 
3 1 3 wide 

keyid:表示这个内容属于哪个主题(例如新闻的ID) 
langid:当前语言ID 
title 当然是标题和内容了

我在一个软件(winform)中使用的是类似楼上的设计,工作很好。
我在一个大型网站中也同样使用上面的设计。
我要说的是这不是“最有效果”的。
速度,速度--还是速度的问题。数据表切分的问题。

 

http://www.doc88.com/p-37337683250.html

posted @ 2011-05-24 06:41  scgw  阅读(461)  评论(0编辑  收藏  举报