SQL语言树层次结构和/或备用语言名称

时间:2015-11-06 17:24:40

标签: sql-server database-design

我正在使用语言SQL表来帮助在我公司提供的特定应用程序中搜索结果。该应用程序涉及多种语言,实际上是世界上每种语言的归档项目(超过7,000种语言/方言)。我们已经正确地格式化了.JSON中所有7,000多种语言的层次结构,其中包括语言族,Genus等...根据Ethnologue对特定语言进行分类。示例如下:

{
    "siouan-catawban": {
        "Catawban": {
            "Catawba": "[chc] (A language of United States)"
        },
        "Siouan": {
            "Mandan": "[mhq] (A language of United States)",
            "Mississippi Valley-Ohio Valley Siouan": {
                "Mississippi Valley Siouan": {
                    "Chiwere-Winnebago": {
                        "Ho-Chunk": "[win] (A language of United States)",
                        "Iowa-Oto": "[iow] (A language of United States)"
                    },
                    "Dakota": {
                        "Assiniboine": "[asb] (A language of Canada)",
                        "Dakota": "[dak] (A language of United States)",
                        "Lakota": "[lkt] (A language of United States)",
                        "Stoney": "[sto] (A language of Canada)"
                    },
                    "Dhegihan": {
                        "Kansa": "[ksk] (A language of United States)",
                        "Omaha-Ponca": "[oma] (A language of United States)",
                        "Osage": "[osa] (A language of United States)",
                        "Quapaw": "[qua] (A language of United States)"
                    }
                }
            },
            "Missouri River Siouan": {
                "Crow": "[cro] (A language of United States)",
                "Hidatsa": "[hid] (A language of United States)"
            }
        }
    }
}

在7,000多种语言中~6200多种语言都有其他人可以称之为的替代名称。就像上面一样,我们也将它们输入.JSON格式,除了这些由'iso'代码调用(在上面的例子中的[]中)。以下是上面示例中列出的语言的替代名称.JSON:

{
    "win":{
        "altName": "Hocák, Hocak Wazijaci, Hocank, Hochank, Winnebago"
    },
    "asb":{
        "altName": "Assiniboin"
    },
    "dak":{
        "altName": "Sioux"
    },
    "lkt":{
        "altName": "Lakhota, Lakotiyapi, Teton"
    },
    "sto":{
        "altName": "Nakoda, Stony"
    },
    "ksk":{
        "altName": "Kanze, Kaw, Konze"
    },
    "oma":{
        "altName": "Mahairi, Ponka, Ppankka, Umanhan"
    },
    "osa":{
        "altName": "Wazhazhe"
    },
    "qua":{
        "altName": "Alkansea, Arkansas, Capa, Ogaxpa"
    },
    "cro":{
        "altName": "Apsaalooke"
    },
    "hid":{
        "altName": "Hinatsa, Hiraca, Minitari"
    }
}

我怎样才能创建一个能够完成以下任务的SQL表:在我的应用程序搜索栏中搜索“Mississippi Valley Siouan”,并且.JSON中的每个语言都将成为结果。 AND |如果我搜索替代名称“Apsaalooke”(具有'cro'iso代码),那么“Crow”语言将成为结果。

- 这也必须工作,而且对于7,000多种语言(完整的.JSON中超过14,000行)不会太麻烦。

- 有关这些语言在树中的深度的示例,有11种语言被埋没了17级。

当前搜索的工作方式,我可以搜索“阿拉伯语”语言,但是,我们提供的阿拉伯语资源都没有显示出来。由于阿拉伯语是由地区特定的方言组成,您可以搜索“埃及阿拉伯语”并显示,但“埃及阿拉伯语”不会出现在“阿拉伯语”下。完整.JSON中的SQL表将解决该问题,因为语言层次结构。

我知道它可能需要几个不同的表但是没关系。愿意做这项工作,我只需知道如何做。顺便提一句SQL新手。

提前致谢!

0 个答案:

没有答案