类似电子表格的网络应用程序的表结构/架构(例如:Google Docs)?

Kgo*_*ser 3 postgresql database-design

我是一名前端开发人员/设计师,正在尝试扩展并了解更多有关后端世界的信息。我选择了 Python、Django 和 Postgres 作为我的起点。我的目标是构建一个个人网络应用程序,并将其用作我学习的催化剂。这真的很有趣。

我正处于设计数据模型的阶段。我通常会修补并解决问题,但在这种情况下我很好奇什么是可能的。

我的应用程序的数据模型的一个很好的类比是电子表格。用户可以创建“电子表格”,然后确定“列”,然后确定每列的数据类型。

因此,作为一个纯粹的示例,一个新工作表具有以下列:

Name (text)
Cost (number / currency)
Date (time stamp
Frequency (number)
Notes (text)
Run Code Online (Sandbox Code Playgroud)

然后,可以添加“行”,其中每个条目都有名称/成本/日期/频率/注释的值,以及一些元数据,例如谁创建了该行,在什么时间等。

我不确定完成此示例的最佳模式是什么。下面是我想出的最好的主意。我想知道是否有人愿意评论这是否是最好的方法,或者就不同的方向提供反馈。

在此输入图像描述

Fru*_*ner 6

我从未尝试过这样的事情,但也许这样的模式会起作用:

电子表格
    Spreadsheet_id(唯一键)
    姓名
    行数
    列数

列类型
    type_id(唯一键)
    类型名称

电子表格行数
    Spreadsheet_row_id(唯一键)
    Spreadsheet_id(指电子表格.spreadsheet_id)
    row_seq_num(用于屏幕上的行排序)
    行名

电子表格_列
    Spreadsheet_col_id(唯一键)
    Spreadsheet_id(指电子表格.spreadsheet_id)
    col_seq_num(用于屏幕上的列排序)
    column_type_id(指column_types.type_id)
    列名

电子表格单元格
    cell_id(唯一键)
    Spreadsheet_id(指电子表格.spreadsheet_id)
    row_id(指spreadsheet_rows.spreadsheet_row_id)
    col_id(指spreadsheet_cols.spreadsheet_col_id)
    cell_value(保存实际值!)

当然,您只会spreadsheet_cells为非空值创建记录......