小编qbe*_*uek的帖子

多语言数据库的模式

我正在开发一种多语言软件.就应用程序代码而言,可本地化不是问题.我们可以使用特定于语言的资源,并拥有适合他们的各种工具.

但是,定义多语言数据库模式的最佳方法是什么?假设我们有很多表(100或更多),每个表可以有多个可以本地化的列(大多数nvarchar列应该是可本地化的).例如,其中一个表可能包含产品信息:

CREATE TABLE T_PRODUCT (
  NAME        NVARCHAR(50),
  DESCRIPTION NTEXT,
  PRICE       NUMBER(18, 2)
)
Run Code Online (Sandbox Code Playgroud)

我可以想到三种方法来支持NAME和DESCRIPTION列中的多语言文本:

  1. 每种语言的单独列

    当我们向系统添加新语言时,我们必须创建其他列来存储翻译后的文本,如下所示:

    CREATE TABLE T_PRODUCT (
      NAME_EN        NVARCHAR(50),
      NAME_DE        NVARCHAR(50),
      NAME_SP        NVARCHAR(50),
      DESCRIPTION_EN NTEXT,
      DESCRIPTION_DE NTEXT,
      DESCRIPTION_SP NTEXT,
      PRICE          NUMBER(18,2)
    )
    
    Run Code Online (Sandbox Code Playgroud)
  2. 翻译表与每种语言的列

    不存储翻译的文本,而是仅存储翻译表的外键.转换表包含每种语言的列.

    CREATE TABLE T_PRODUCT (
      NAME_FK        int,
      DESCRIPTION_FK int,
      PRICE          NUMBER(18, 2)
    )
    
    CREATE TABLE T_TRANSLATION (
      TRANSLATION_ID,
      TEXT_EN NTEXT,
      TEXT_DE NTEXT,
      TEXT_SP NTEXT
    )
    
    Run Code Online (Sandbox Code Playgroud)
  3. 用于每种语言的行的转换表

    不存储翻译的文本,而是仅存储翻译表的外键.转换表仅包含一个键,而一个单独的表包含每个语言转换的行.

    CREATE TABLE T_PRODUCT (
      NAME_FK        int,
      DESCRIPTION_FK int,
      PRICE          NUMBER(18, 2)
    )
    
    CREATE TABLE T_TRANSLATION ( …
    Run Code Online (Sandbox Code Playgroud)

multilingual database-design localization

222
推荐指数
5
解决办法
9万
查看次数

如何定位DIV以填充标题DIV和页脚DIV之间的所有可用空间?

假设我有父DIV.在里面,有三个子DIV:标题,内容和页脚.标题附加到父级的顶部并水平填充.页脚连接到父级的底部并且也水平填充.内容应该填充页眉和页脚之间的所有空间.

父母必须有固定的宽度和高度.内容DIV必须填充页眉和页脚之间的所有可用空间.当内容DIV的内容大小超过页眉和页脚之间的空间时,内容DIV应显示滚动条并允许适当的滚动,以使页脚内容不应被遮挡,页脚内容也不会模糊.

现在是困难的部分:你事先不知道页眉或页脚的高度(例如,页眉和页脚是动态填充的).如何在不使用JavaScript的情况下定位内容?

例:

<div style="position : relative; width : 200px; height : 200px; background-color : #e0e0ff; overflow : hidden;">
    <div style="background-color: #80ff80; position : absolute; left : 0; right : 0; top : 0;">
    header 
    </div>
    <div style="background-color: #8080ff; overflow : auto; position : absolute;">
    content (how to position it?)
    </div>
    <div style="background-color: #ff8080; position : absolute; bottom : 0px; left :0; right : 0;">
    footer 
    </div>    
</div>
Run Code Online (Sandbox Code Playgroud)

为了进一步澄清此事件 - 我正在尝试实现的目标布局将用于业务Web应用程序.父DIV将具有固定但未知的大小(例如,它将与浏览器视口的大小完全相同,自身大小调整以及用户调整浏览器窗口的大小).让我们将父DIV称为"屏幕". …

html css

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

css ×1

database-design ×1

html ×1

localization ×1

multilingual ×1