您可能会问错误的问题。
一些准备
谈到作为一个DBA,按照一个接口指导是远远最佳实践命名数据库对象。该矿已作为一个来源
- HTML,
- JSON,
- XML,
- 文本,
- PDF,
- SMS(短信),
- 电子邮件,
- 直邮和
- 其他我无法想到顶端我的头。
用多种语言编写的程序访问数据库。
在SQL中,标识符可能会或可能不会被分隔(用引号括起来)。 SQL标准要求将非限定标识符折叠为大写。这意味着select camelCase
被处理为CAMELCASE
。要保存大小写,您必须使用分隔标识符,如select "camelCase"
。
PostgreSQL偏差折叠为小写。 (列FOO,富,和FOO是相同的。)
SQLite的偏离通过使用双引号仅识别的标识符,不保存的情况下。 (列“富”,“富”和“FOO”是相同的,但返回的名称作为列标题保留了CREATE TABLE语句的情况下,不管你是否使用分隔标识符。 )
列名作为关键字
,如果你打算使用的列名JSON键您的问题才有意义。
PostgreSQL原生支持json 9.3+;它默认不使用列名作为json键。例如,这里PostgreSQL使用F1,F2,F3和F4为JSON键而不是列名 “CUST_ID”, “ADDR_TYPE” 等
select row_to_json(row(cust_id, addr_type, street_addr, city_name))
from test;
row_to_json
--
{"f1":1,"f2":"bill","f3":"123 Main St","f4":"Anytown"}
您可以通过使用获得任意键名一个共同的表格表达。还有其他方法;没有一个是特别愉快的。
WITH data("custId", "addrType", "streetAddr", "cityName") AS (
select cust_id, addr_type, street_addr, city_name
from test
)
SELECT row_to_json(data) FROM data;
row_to_json
--
{"custId":1,"addrType":"bill","streetAddr":"123 Main St","cityName":"Anytown"}
SQLite没有对JSON任何原生支持。所有的json功能必须来自应用程序代码。
所以你需要问一下,“我使用的第一个应用程序语言是如何从数据库查询中创建json键的?这可能是不会是您使用的最后一种语言。而下一个可能不会以同样的方式工作。记住这一点。
我不认为我看过一种编程语言,默认情况下,它会在生成json时读取数据库元数据。
就我个人而言,我总是使用PascalCase。 – 2015-02-10 13:04:23