小编Bri*_*ian的帖子

可更新顺序记录的数据库设计

我正在创建一个数据模型来存储与生产跟踪相关的数据。我在一家工程公司工作,为我们的客户建模和分析数据。这个过程有几个步骤,而且这个过程是不断更新的。

我正在尝试对流程进行建模并包括父流程和流程的顺序。

例如:

Process Table
---------------------
ProcessID - uniqueidentifier
ProcessName - varchar
ProcessDescription - varchar
...

ProcessOrder Table
---------------------
ProcessID - uniqueidentifier FK - Process
ParentProcessID - uniqueidentifier FK - Process
ProcessOrder - int
...
Run Code Online (Sandbox Code Playgroud)

中的ProcessOrderProcessOrder表中将简单地存储一个数字,该数字表示它代表的父进程中的哪个顺序步骤。

例如,一个建模过程有以下步骤:创建新的空模型、命名模型、输入模型参数。该Process表将如下所示:

ProcessID | ProcessName | ProcessDescription
-------------------------------------------------
UUID1     | Modeling    | Create Model of Data
UUID2     | New Model   | create new empty model
UUID3     | Name Model  | name model
UUID4     | Parameters  | enter model parameters …
Run Code Online (Sandbox Code Playgroud)

database-design relational-theory

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

如何获取数据库中所有表中每个TEXT字段的最大字段值长度

我正在尝试获取有关数据库中数据的信息。我在几个表中有几列输入“TEXT”。我想执行一个查询,该查询将创建如下所示的结果:

|table_name|column_name|max_length|
-----------------------------------
|my_table  |name       |35        |
Run Code Online (Sandbox Code Playgroud)

我有查询来获取所有表和列:

SELECT table_name, column_name FROM information_schema.columns
WHERE table_schema = 'public' AND data_type = 'text'
ORDER BY table_name
Run Code Online (Sandbox Code Playgroud)

但我现在不知道如何遍历每个表和列以获得每列的最大长度。我确实有一个查询来获取特定列和表的最大长度:

SELECT 'my_table', 'name', MAX(LENGTH(name)) FROM my_table
Run Code Online (Sandbox Code Playgroud)

如何进行查询,根据查询结果动态获取最大长度以获取所有表和列?

postgresql dynamic-sql plpgsql

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