gpt4 book ai didi

php - 如何设置将存储表格数据的数据库表?

转载 作者:可可西里 更新时间:2023-11-01 07:08:04 24 4
gpt4 key购买 nike

我将拥有一个包含数百万个表格(其中包含数据的文字 HTML 表格)的网站,因此我需要存储这些表格。我正在努力解决是否应该将每个表行存储为数据库中的单独记录,或者我是否应该将整个表存储为 JSON 编码数据(或类似格式)的问题。

我对此提出质疑的原因是我希望允许用户访问每个 HTML 表格中的更改数据,并且我希望他们能够仅更改一个表格单元格中的数据,而不必去通过编辑整个表格。

如果我将整个表存储为一个值,那么只更改一个单元格可能会很麻烦,因为我可能每次都只需要替换整个表值,而不是进行搜索和替换。但是,如果我将每个表行存储为一条记录,我将拥有数十亿条记录,这些记录可能很快就会失控,因为我还想将旧版本保存在存储中(在另一个数据库表中)。

如果我将每一行存储为单独的记录,它也必须是 super 关系型的,因为 HTML 表格将有标题、子标题等。

我已经做了一些计算,这些是粗略的数字:

~912 家企业总数美国平均约有 800 个地点约 729,600 张 table ~7200 万表行

以下是从 UI 角度来看表的工作方式,以便您了解数据的处理和操作方式。

table description

最佳答案

不要将 HTML 存储在数据库中——只存储原始数据,这就是数据库的用途。然后,您可以使用 PHP 随心所欲地对其进行即时格式化,无论是网页上的 HTML 表格、用于 API 查询的 JSON 编码字符串、高级报告还是 CSV 文件导出。您需要一张用于企业的表格:

CREATE TABLE business (
id UNSIGNED INT NOT NULL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
address ...
city ...
);

一个用于企业位置:

CRATE TABLE location (
id UNSIGNED INT NOT NULL PRIMARY KEY,
business_id UNSIGNED INT NOT NULL REFERENCES business(id),
name VARCHAR(255) NOT NULL,
description ...
KEY (business_id)
);

还有一个用于某个位置的项目:

CREATE TABLE item (
id UNSIGNED INT NOT NULL PRIMARY KEY,
location_id UNSIGNED INT NOT NULL REFERENCES location(id),
type VARCHAR(255),
name VARCHAR(255),
size VARCHAR(255),
discount UNSIGNED INT,
KEY (location_id)
);

您可能希望根据您的要求调整索引和键的唯一性。我想您会想要 (location.business_id + location.name) 和 (item.location_id + item.name) 的唯一键。

关于php - 如何设置将存储表格数据的数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31358947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com