存储文档 (SQL) 的 table 行的最佳方式?
The best way to store rows of the table of a document(SQL)?
我有一份报告 table。
报表也有字段。
例如(JSON):
{
company: Company,
period: "3M2019",
typeReport: "type",
multiplicity: 1000
currency: "USD",
rows: [
{ parameter: parameter1, value: 1000 },
{ parameter: parameter2, value: 2000 },
{ parameter: parameter3, value: 3000 },
]
}
我有两种获取数据的场景:
- 正在获取所选报告的所有行;
- 获取期间、类型报表、货币、公司的所有或选定参数的所有行(来自所有报表)。
第一种场景理解的话,第二种场景有两种存储方式:
从数据库中读取更多内容
公司、期间、类型报表货币存储在报表中table,当我想获取行时,我应该找到所有包含这些字段的报表,然后按报表和参数查找所有行。
更多存储数据
Company、period、typeReport、currency 存储在每一行的 table 行中。然后我可以按字段找到每一行,对一个 table.
进行一个查询
例如数据库中的行:
{company: Company, period: "3M2019", typeReport: "type", multiplicity: 1000, currency: "USD", parameter: parameter1, value: 1000},
{company: Company, period: "3M2019", typeReport: "type", multiplicity: 1000, currency: "USD", parameter: parameter2, value: 2000},
{company: Company, period: "3M2019", typeReport: "type", multiplicity: 1000, currency: "USD", parameter: parameter3, value: 3000},
存储数据的最佳方式是什么:更多数据还是从数据库读取更多?
为这种树状数据结构(具有明显的 1-n 关系)存储数据的一种简单方法可能是:
table 1:base
列
id, company, period, typeReport, multiplicity, currency
列 id
是此 table 的唯一(主)键。通常它将是一个自动递增的列。
table 2:params
列:
tid, parameter, value
然后您可以使用
获取所有数据(或搜索任何列值)
select company, period, typeReport,
multiplicity, currency,
parameter, value
from base
inner join params on tid=id
-- where parameter=...
使用这种类型的数据结构,您可以确保没有冗余,也不会存储任何冲突的数据。
我有一份报告 table。
报表也有字段。
例如(JSON):
{
company: Company,
period: "3M2019",
typeReport: "type",
multiplicity: 1000
currency: "USD",
rows: [
{ parameter: parameter1, value: 1000 },
{ parameter: parameter2, value: 2000 },
{ parameter: parameter3, value: 3000 },
]
}
我有两种获取数据的场景:
- 正在获取所选报告的所有行;
- 获取期间、类型报表、货币、公司的所有或选定参数的所有行(来自所有报表)。
第一种场景理解的话,第二种场景有两种存储方式:
从数据库中读取更多内容
公司、期间、类型报表货币存储在报表中table,当我想获取行时,我应该找到所有包含这些字段的报表,然后按报表和参数查找所有行。
更多存储数据
Company、period、typeReport、currency 存储在每一行的 table 行中。然后我可以按字段找到每一行,对一个 table.
进行一个查询
例如数据库中的行:
{company: Company, period: "3M2019", typeReport: "type", multiplicity: 1000, currency: "USD", parameter: parameter1, value: 1000},
{company: Company, period: "3M2019", typeReport: "type", multiplicity: 1000, currency: "USD", parameter: parameter2, value: 2000},
{company: Company, period: "3M2019", typeReport: "type", multiplicity: 1000, currency: "USD", parameter: parameter3, value: 3000},
存储数据的最佳方式是什么:更多数据还是从数据库读取更多?
为这种树状数据结构(具有明显的 1-n 关系)存储数据的一种简单方法可能是:
table 1:base
列
id, company, period, typeReport, multiplicity, currency
列 id
是此 table 的唯一(主)键。通常它将是一个自动递增的列。
table 2:params
列:
tid, parameter, value
然后您可以使用
获取所有数据(或搜索任何列值)select company, period, typeReport,
multiplicity, currency,
parameter, value
from base
inner join params on tid=id
-- where parameter=...
使用这种类型的数据结构,您可以确保没有冗余,也不会存储任何冲突的数据。