0

我想知道如何解决这个问题。

我们的数据库中有一个配置文件表,该表将由一个进程填充,该进程读取上传的 excel 文档,然后将列和行中的数据转储到用户的配置文件中(所有此类 excel 电子表格之间唯一的共同点是电子邮件地址)。

因此,我们无法真正预测给定用户的个人资料会是什么样子。如何创建我的个人资料表?

4

3 回答 3

1

如果你有办法使用编程语言处理这些数据,而不是盲目地做映射,那应该很简单。

带有 ID 的 User_table,以及一些修复信息,例如名称和其他信息。

然后你有一个配置文件表,它有一个 user_id 外键,和键对值,标题/值

于 2012-04-05T15:46:19.413 回答
1

抱歉,我必须创建另一个答案,但评论不会让我创建 ascii 草图

----------
| user   |
----------
| id   pk|
| name   |
| .....  |
----------

----------------
| preference   |
----------------
| user_id   fk | <-- reference user.id
| header       |
| value        |
----------------

csv_row=1,churk,height,11,weight,500lb,width,22,... 或 csv_row=1,churk,height=11,wieght=500lb,width=22......

这将在用户表中产生 1 行,user.id = 1,user.name = Churk 至少优先 3 行。{[1,height,11],[1,weight,500lb],[1,width,22]}

因此,当您查询数据库时,您所需要的只是

SELECT * FROM user JOIN preference on preference.user_id = user.id WHERE user.name = 'Churk';
于 2012-04-05T16:10:13.950 回答
0

以后如何查询这些数据?尽管我讨厌这种做法,但这可能是需要将 csv 数据存储在列中的情况。

更新:
这可能非常适合实体属性值模式。我也不是 EAV 的真正粉丝,但至少它不像列中的 csv 数据那么邪恶。

于 2012-04-05T15:44:35.227 回答