如何规范化具有相似列名的 table?
How to normalize a table with similar column names?
我有一个 SQL table 像这样:
column(id, name, title, view1, view2, view3, view4);
其中 view1, view2,...
是布尔字段,指示当相应的 viewX 被 select 编辑时,是否显示或隐藏具有 name
的特定 table 列。
例如,考虑一个 table,其列名如 (time, pressure, efficiency, ...)
和各种数据(请参阅下面的 "column" 定义)
time | pressure | efficiency
----------------------------
00:00 | 53.3 | 39%
00:01 | 53.3 | 39%
00:03 | 53.3 | 39%
我希望 select view1
显示模式,其中 view1
仅显示 time
列。然后我可能希望 select view2
显示模式,我只想看到 time
和 pressure
列。 view3
是只显示time
和efficiency
。 view4
显示所有列名和数据 (time, pressure, efficiency)
.
我怎样才能正常化这个 table?我很难弄清楚该往哪个方向走。我需要首先对其进行标准化吗?
术语
为了使用清晰的术语,我将使用 "column" 一词来表示我的 HTML table 列用例,其中列是(时间、压力、效率等),和单词 "field" 表示 SQL 数据库字段。
P.S。我的答案似乎是在列 table 和组 table 之间创建一个 关系 ,其中列包含诸如(时间、压力、效率)之类的值,以及组包含(view1、view2、view3 等)。基于关系,如果关系数据库 table 包含带有(视图 X,字段名 Y)的行,则选择视图 X 时将显示字段名 Y。我想这就是我的答案。
my_table_1(id*, 姓名, 职务, sort_order);
my_table_2(my_table_1_id*,my_view*,状态);
*
=(组成)主键
您可以创建一个单独的 table 来保存布尔值:
first_table: column(id, name, title, sort_order);
second_table: column(id, first_table_id, view_no, shown);
此处 shown
列包含布尔值。
我有一个 SQL table 像这样:
column(id, name, title, view1, view2, view3, view4);
其中 view1, view2,...
是布尔字段,指示当相应的 viewX 被 select 编辑时,是否显示或隐藏具有 name
的特定 table 列。
例如,考虑一个 table,其列名如 (time, pressure, efficiency, ...)
和各种数据(请参阅下面的 "column" 定义)
time | pressure | efficiency
----------------------------
00:00 | 53.3 | 39%
00:01 | 53.3 | 39%
00:03 | 53.3 | 39%
我希望 select view1
显示模式,其中 view1
仅显示 time
列。然后我可能希望 select view2
显示模式,我只想看到 time
和 pressure
列。 view3
是只显示time
和efficiency
。 view4
显示所有列名和数据 (time, pressure, efficiency)
.
我怎样才能正常化这个 table?我很难弄清楚该往哪个方向走。我需要首先对其进行标准化吗?
术语
为了使用清晰的术语,我将使用 "column" 一词来表示我的 HTML table 列用例,其中列是(时间、压力、效率等),和单词 "field" 表示 SQL 数据库字段。
P.S。我的答案似乎是在列 table 和组 table 之间创建一个 关系 ,其中列包含诸如(时间、压力、效率)之类的值,以及组包含(view1、view2、view3 等)。基于关系,如果关系数据库 table 包含带有(视图 X,字段名 Y)的行,则选择视图 X 时将显示字段名 Y。我想这就是我的答案。
my_table_1(id*, 姓名, 职务, sort_order);
my_table_2(my_table_1_id*,my_view*,状态);
*
=(组成)主键
您可以创建一个单独的 table 来保存布尔值:
first_table: column(id, name, title, sort_order);
second_table: column(id, first_table_id, view_no, shown);
此处 shown
列包含布尔值。