簡體   English   中英

為什么在數據庫中使用Camel Case作為JS和Snake Case?

[英]Why use Camel Case for JS and Snake Case for your DB?

有人告訴我在我的DB中使用蛇盒而且從來沒有使用過籠子。 JSON API表示在對象鍵的單詞之間使用短划線。 Javascript,每個人都使用camelCase。

如果我有一個RAILS服務器從SQL數據庫獲取數據,將其作為json發送並在javascript中使用,我真的需要在這些表示法之間進行轉換嗎?

為什么不到處都使用蛇盒呢?

對於JavaScript,如果您想使用駝峰案例,則由您(或項目指南)決定。 但是因為幾乎每個majaor庫和核心API都使用駝峰情況,所以做同樣的事情是個好主意,因為那樣你就不需要考慮是否需要使用其中一個。

對於DBMS,它取決於操作系統和DBMS,因為使用混合字母時可能會遇到技術問題。 例如,如果您在Windows系統上運行MySQL數據庫,那么MySQL就不會關心表名的情況,因為文件系統不區分大小寫。 因此,Windows上的默認MySQL配置會自動將所有表名轉換為小寫。 只要您的DBMS將保留在Windows機器上,這不會有問題,但是一旦您決定切換到Linux基本服務器,那么將數據從Windows遷移到Linux機器箱會遇到很大問題。

為了不依賴於這些問題,通常只使用帶有DBMS的小寫字母,無論DBMS是否會出現大寫字母問題 使用小寫字母肯定沒有問題,如果可能是問題,您需要使用大寫字母進行調查。

你真的不需要按標准轉換它。 遵循命名約定,以便一組開發人員在同一應用程序上工作。

遵循組織定義的命名約定是最佳實踐,以便在開發人員之間更好地理解代碼。

您可以使用此庫在兩者之間進行轉換: case-converter它將snake_case轉換為camelCase,反之亦然

  const caseConverter = require('case-converter')

  const snakeCase = {
    an_object: {
      nested_string: 'nested content',
      nested_array: [{ an_object: 'something' }]
    },
    an_array: [
      { zero_index: 0 },
      { one_index: 1 }
    ]
  }

  const camelCase = caseConverter.toCamelCase(snakeCase);

  console.log(camelCase)
  /*
    {
      anObject: {
        nestedString: 'nested content',
        nestedArray: [{ anObject: 'something' }]
      },
      anArray: [
        { zeroIndex: 0 },
        { oneIndex: 1 }
      ]
    }
  */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM