0

I have an articles website in PHP/MySQL. What I want to allow someone to do is to upload a CSV file and have that appear as a table within the article itself. I want to avoid doing a CREATE table every time as I could easily end up with thousands of tables.

Thoughts on the best way to store table information like this efficiently and permanently?

4

3 回答 3

1

考虑将 csv 数据简单地存储为文件。呈现页面时,将 csv 文件的内容显示为表格。应用 JavaScript/jQuery 逻辑以获得更好的用户体验(例如排序、过滤)。

如果您不想处理或加入 csv 文件中的信息,则无需将其存储在关系 mysql 表中。

于 2011-04-29T14:28:10.037 回答
1

除非您以后要操作数据,否则将 CSV 文件内容转换为 HTML 表格并将其存储为文章 html 的一部分可能会容易得多。对csv 到 html 表的简单搜索会返回很多很多预先编写的函数,其中一些在 php 中;去看一下。

于 2011-04-29T14:28:32.570 回答
0

为每个 CSV 创建一个新的数据库表听起来有点矫枉过正。您永远不必以这种方式修改您的数据库模式。相反,请以允许插入此类数据的方式设计您的架构。

这是一种可能的解决方案:您可以拥有一个包含以下内容的表:

  1. 唯一标识表的 ID
  2. 唯一标识该表中的行的 ID
  3. 列的名称
  4. 单元格的值

SQL:

CREATE TABLE tables(
  table_id int,
  row_number int,
  column_name varchar(50),
  cell_value varchar(50) 
)

--row 1
INSERT INTO tables VALUES (1, 1, 'name', 'George Washington');
INSERT INTO tables VALUES (1, 1, 'dob', 'April 30, 1789');

--row 2
INSERT INTO tables VALUES (1, 2, 'name', 'John Adams');
INSERT INTO tables VALUES (1, 2, 'dob', 'March 4, 1797');
于 2011-04-29T14:42:09.550 回答