【问题标题】:Database tables designing for data without fixed structures为没有固定结构的数据设计的数据库表
【发布时间】:2018-08-15 03:53:59
【问题描述】:

我有一个看起来像这样的数据结构:

<event name="SomeEventName" time="2018-03-06 09:30:00" owner="SomeOwnerId">
    <param name="param1" value="value1"/>
    <param name="param2" value="value2"/>
    ...
    <param name="paramN" value="valueN"/>
</event>

这个结构是从客户端发送到服务器,并描述发生在客户端的事件。我需要将每个收到的用户事件存储在数据库中。 问题在于设计数据库表结构:从客户端接收到的每个事件可能有不同数量的参数,当然每个参数的值也不同。 即使是同一个事件也可能有不同数量的参数。

所以,我的问题是关于此类数据结构的数据库设计,这些数据结构在服务器端没有预定义的数据结构。 如何为这样的结构设计数据库表? 例如,我可以将来自客户端的数据接收格式更改为 JSON,但我不能更改格式本身 - 这是一个参数数量未知的“事件”。

也许我应该看看可以以 JSON 格式存储整个文档的 NoSQL 数据库?

任何帮助表示赞赏,在此先感谢!

【问题讨论】:

    标签: sql database database-design nosql


    【解决方案1】:

    如果您使用 NoSQL,您可以在对象中构造您的对象。名称、时间和所有者都是键以及数据,它是具有对象值的键,该对象具有您的参数的所有键/值对。

    {
    "name": "SomeEventName",
    "time": "2018-03-06 09:30:00",
    "owner": "SomeOnwerId",
    "data": 
    {"param1": "value1",
     "param2": "value2",
    ...}
    }
    

    【讨论】:

    • 谢谢!我理解对了吗,没有办法设计 SQL 数据库来以我在第一篇文章中解释的格式存储数据?
    • 我对 SQL 数据库不是很熟悉,所以帮不了你
    猜你喜欢
    • 2013-02-17
    • 2021-08-10
    • 1970-01-01
    • 2010-12-22
    • 2012-10-20
    • 2016-09-10
    • 2021-04-05
    • 2015-06-17
    • 1970-01-01
    相关资源
    最近更新 更多