【问题标题】:What file-format is this?这是什么文件格式?
【发布时间】:2011-03-22 19:35:27
【问题描述】:

我一直在使用下面的这种文件格式作为纯文本文件的替代品,我想知道它是否有名称...

假设您有 CSV 格式的数据:

FirstName,LastName,Email,UserName,Notes
Bob,Smith,bsmith@email.com,bsmith,Bob likes chicken
John,Doe,jdoe@email.com,jdoe,
Steve,Jobs,STEVE@apple.com,STEVE,Steve Jobs likes things that start with "i"

在这种“其他”文件格式中,有 3 列:

  1. 唯一标识
  2. 属性名称
  3. 价值

上面的数据应该是这样的:

bmsith@email.com,FirstName,Bob
bmsith@email.com,LastName,Smith
bmsith@email.com,Email,bmsith@email.com
bmsith@email.com,UserName,bsmith
bmsith@email.com,Notes,Bob likes chicken
jdoe@email.com,FirstNameJohn
jdoe@email.com,LastName,Doe
jdoe@email.com,Email,jdoe@email.com
jdoe@email.com,UserName,jdoe
STEVE@apple.com,FirstName,Steve
STEVE@apple.com,LastName,Jobs
STEVE@apple.com,Email,STEVE@apple.com
STEVE@apple.com,UserName,STEVE
STEVE@apple.com,Notes,Steve Jobs likes things that start with "i"

我实际上是在制表符上定界的,但逗号更容易阅读。在此示例中,任何属性都可以用作唯一标识符。

【问题讨论】:

  • 问题不是特别清楚-您能详细说明吗?
  • 这是您创建的格式还是其他系统需要的格式?
  • 为什么要使用这种格式?这似乎非常低效。有什么好处?
  • 不要把这个当成个人,但是我看第二个例子的次数越多,你给出的脑死亡就越多。
  • 我更新了示例以使其更完整...好处是您不需要在标题行中包含所有属性(因此您可以拥有数千个属性名称但仍然有 3列...),如果一行没有特定属性,您不会以 NULL 结束...您只需省略该行

标签: file-format


【解决方案1】:

它仍然是 CSV。您只是从不同方面呈现数据,就其结构而言,而不是其内容。

【讨论】:

  • 可以理解...我想知道是否有名字。它是 CSV(或制表符分隔),但它不是“纯文本”……是别的什么吗?
【解决方案2】:

花了一些时间,但我找到了。它是Entity Attribute Value (EAV)。

【讨论】:

    【解决方案3】:

    如果您在制表符上进行分隔,则它是一个制表符分隔的文件。但我认为您显示的特定格式没有专有名称。

    【讨论】:

      【解决方案4】:

      该结构称为键值表。并且您已将该表序列化为 CSV 文件。

      【讨论】:

        【解决方案5】:

        我以前从未见过这种数据描述。但由于它是逗号分隔的格式,我想它仍然被称为 CSV:

        http://en.wikipedia.org/wiki/Comma-separated_values

        但我认为这种保存方式会使用很多不必要的字节,因为您重复了很多 uniqueID 和属性名称。我能看到的唯一优点是数据可以随机放置在文件中。除此之外,文本文件通常是按顺序读取的。

        --- 编辑 ---

        在 wiki 中,有一个 human readable formats 列表。如果它们都不适合您并且仍想使用您的格式并使用名称,您可以始终使用更通用的名称,如 Delimiter separated value 而不是 CSV,或者发明一个新的名称,如键字段值 (KFV)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多