1

免责声明:我是一个 SQL 新手,刚刚发现 sqlite 嵌入应用程序的巨大可能性。

我正在为一个主要处理用于绘图的数据存储的应用程序设计一个小型数据库。假设我有几个仪器数据表(每种仪器一个),每个数据字段都有一个列,例如压力、温度、湿度等。我想加入这些数据表,提取列名,然后分配一个更易于阅读的列“描述”可供用户选择用于绘图的自变量/因变量。在 sqlite 中获取列名很容易,但我不确定是否应该将生成的名称(和更长的描述)存储为数据库中的另一个表或应用程序中的某种列表。如果它是数据库中的另一个表,我想我必须将列名存储为字符串......除非有某种方法可以引用 SQL 中的列?我'

感谢您的任何建议,堆栈溢出。

4

2 回答 2

2

有一些方法可以在 SQL 中进行自省并提取表名和列名,但您可能不想这样做,其实现细节高度依赖于您的特定 RDBMS。

由于人类可读的列名是一个显示细节,并且可能是一个静态值,因此请将其保留在数据库之外以及应用程序的显示/渲染部分的某个位置。(这也有例外,例如,如果您希望每个用户可以自定义列名。)您可以保留一个散列或字典,它定义了一个人性化的名称并使用实际的数据库列名作为其键。此设置可以方便地保存列显示的其他设置,例如数据类型、显示精度(如果是数字)等。

于 2010-02-08T04:03:14.397 回答
1

您所追求的有时被称为“数据字典”。如果 DBMS 不提供注释工具,那么您将需要模拟它们,这可能包括创建一个包含表名和列名的表。这样做是完全合理的。

请注意跟踪表名更改以及添加或删除列的困难;内置工具仅跟踪系统目录中的数据(DBMS 需要跟踪正在发生的事情的“数据字典”信息),而不会跟踪表中的内容。

于 2010-02-08T04:03:52.947 回答