0

我正在尝试这样做:

每个用户都可以选择字段(如 MySQL 上的结构),这些字段可以处理它们各自的值,就像在数据库中做数据库一样。
但是我怎么能用一张桌子来做呢?
(不是在谈论用户帐户等,我应该能够使用指向他自己的“结构”的指针)

做一些类似的事情: varchar Key where register some like "Name:asd" where PHP explode : 获取各自的结构('name ' 在这种情况下)和各自的值?('asd') 使用 BLOB?有人可以帮我开灯吗?我不知道如何做一些比我目前的解释更好的事情......

我知道我的文字很混乱,对任何糟糕的英语感到抱歉。

编辑:
另外,他们可以添加多个键/“结构”,其中接受新值
并且他们无法看到数据库或表,他们仍然是普通用户
我的服务器不支持 Postogre

4

5 回答 5

2

在我看来,您应该创建两个表。

  1. 与用户信息
  2. 有 3 个字段(用户 ID、键和值)

每个用户在第一个表中有 1 条记录。每个用户在第二个表中可以有 0 条或更多条记录。这将确保您仍然可以搜索数据,并且用户可以在需要时轻松添加更多键/值对。

于 2012-07-03T07:14:02.670 回答
1

不要开始在数据库中构建数据库。在这种情况下,由于用户自己创建字段,因此我理解的字段之间没有关系?在这种情况下,看看 NoSQL 数据库是有意义的,因为它们似乎非常适合这种情况。

要检查的另一件事是: http ://www.postgresql.org/docs/8.4/static/hstore.html

不要尝试构建表,例如:记录、字段、字段类型等。这是一种不好的做法,不应该被需要。

为了更具体地回答您的愿望,我们需要更多关于用户存储的数据的信息。

于 2012-07-03T07:21:16.303 回答
1

虽然我认为这个问题的合理答案是 PeeHaa 给出的答案,但如果您真的希望数据适合一个表,您可以尝试在其中一个字段中保存一个序列化的 PHP 数组。查看序列化反序列化

生成值的可存储表示

这对于在不丢失类型和结构的情况下存储或传递 PHP 值很有用。

不鼓励这种方法,因为它根本不可扩展。

于 2012-07-03T07:35:29.847 回答
0

希望您也使用编程语言来获取数据并呈现它们。

您可以拥有一个具有 varchar 字段的表。然后将字段结构的序列化数据及其值存储在该字段中。当您想要获取结构时,查询数据并反序列化该 varchar 字段数据。

据我所知,每种编程语言都支持序列化和反序列化。

编辑:这不是一个可扩展的选项。

于 2012-07-03T07:37:22.330 回答
0

使用带有键值对的表。所以三列:

  • 用户身份
  • 键(“名称”)
  • 值(“asd”)

在user id上添加索引,以便您可以轻松查询用户的属性。如果您想查询具有相同属性的所有用户,则可以在key和/或value上添加第二个索引。

于 2012-07-03T07:14:49.317 回答