Estreitamente Columnar
fixed with
e ordered columns
vs dynamic width
e headers
Exemplo
Largura fixa
nome (7 bytes) [espaço] idade (2 bytes) [espaço] altura (5 bytes)
alice 10 150cm
bob 20 160cm
carol 30 170cm
se eu precisar adicionar agora Alexander
age 40
height 180cm
alice 10 150cm
bob 20 160cm
carol 30 170cm
Alexa~1 40 180cm
ele não se encaixa na estrutura estritamente colunar, você fica sem espaço
se você usa uma estrutura colunar mais flexível
Valores separados por espaço
essa dor pode ser evitada com valores separados por espaço
alice 10 150cm
bob 20 160cm
carol 30 170cm
Alexander 40 180cm
Space (s) Separated Values
ou um formato que divide colunas com 1 ou mais espaço
alice 10 150cm
bob 20 160cm
carol 30 170cm
Alexander 40 180cm
como o número de espaços não importa, podemos formatar para a legibilidade humana ou para a densidade de arquivos conforme as nossas necessidades
melhor ainda, aos olhos da filosofia Unix, é um formato que não força a ordem ou a presença de colunas
se a primeira linha for os nomes das colunas e, em seguida, o arquivo delimitado por espaço (s) de dados
Name Age Height
alice 10 150cm
bob 20 160cm
carol 30 170cm
Alexander 40 180cm
com
Age Height Name
10 150cm alice
20 160cm bob
30 170cm carol
40 180cm Alexander
tão válido quanto o primeiro
Se tivermos colunas extras, não nos importamos se os cabeçalhos nos dão mais flexibilidade
Age Height t_shirt_size Name
10 150cm S alice
20 160cm M bob
30 170cm L carol
40 180cm XL Alexander
ainda podemos ler os Name
, Age
e Height
e simplesmente ignorar as colunas que têm cabeçalhos com os quais não nos importamos. ainda carrega no objeto
[{"Name":"alice", "Age":10, "Height":"150cm"},
{"Name":"bob", "Age":20, "Height":"160cm"},
{"Name":"carol", "Age":30, "Height":"170cm"},
{"Name":"Alexander","Age":40, "Height":"180cm"}]
Essas regras levam a um formato de arquivo como o CSV link
Age,Height,t shirt size,Name
10,150 cm,S,alice
20,160 cm,M,bob
30,170 cm,L,carol
40,180 cm,XL,Alexander
evitando stringently columnar data
, tornamos mais provável que o programa, ainda desconhecido, esperamos que a saída se torne a entrada para trabalhar com nosso programa não modificado.
Se meu programa coloca dados em CSV, ele pode ser lido e representado graficamente por inúmeros programas que nem sei que existem.