我试图这样做:
每个用户都可以选择字段(如MySQL上的结构),这些字段可以处理各自的值,就像在数据库中执行数据库一样。
但是我怎么能用一张桌子做呢?
(不是谈论用户帐户等我应该能够使用指向他自己的“结构”的指针)
执行类似下面的操作:varchar键,其中注册类似于“名称:asd”的PHP爆炸:获取相应的结构(在这种情况下为“名称”)和相应的值? ( 'ASD')
使用BLOB?有人可以为我开灯吗?我不知道如何做比我目前的解释更好的事情......
我知道我的文字对任何糟糕的英语都感到困惑和抱歉。
编辑:
此外,他们可以添加多个键/“结构”,其中接受新值
而且他们无法看到数据库或表格,他们仍然是普通用户
我的服务器不支持Postogre
答案 0 :(得分:2)
在我看来,你应该创建两个表。
每个用户在第一个表中有1条记录。每个用户在第二个表中可以有0个或更多记录。这将确保您仍然可以搜索数据,并且用户可以在需要时轻松添加更多键/值对。
答案 1 :(得分:1)
不要开始在数据库中构建数据库。在这种情况下,由于用户自己创建字段,我所理解的字段之间没有关系?在这种情况下,看看NoSQL数据库是有意义的,因为它们似乎非常适合这种情况。
要检查的另一件事是: http://www.postgresql.org/docs/8.4/static/hstore.html
不要尝试构建像:记录,字段,字段类型等表。这是一种不好的做法,不应该被要求。
如果您希望得到更具体的答案,我们需要更多关于用户存储数据的信息。
答案 2 :(得分:1)
虽然我认为这个问题的理性答案是PeeHaa给出的,如果你真的希望数据适合一个表,你可以尝试在其中一个字段中保存序列化的PHP数组。查看serialize和unserialize
生成值的可存储表示
这对于存储或传递PHP值而不会丢失非常有用 他们的类型和结构。
不建议使用此方法,因为它根本不可扩展。
答案 3 :(得分:0)
使用具有键值对的表。所以三栏:
在用户ID 上添加索引,以便您可以轻松查询用户的属性。如果您想查询具有相同属性的所有用户,则可以在键和/或值上添加第二个索引。
答案 4 :(得分:0)
希望您也使用编程语言来获取数据并显示它们。
您可以拥有一个包含varchar字段的表。然后将字段结构的序列化数据及其值存储在该字段中。如果要获取结构,请查询数据并反序列化该varchar字段数据。
据我所知,每种编程语言都支持序列化和反序列化。
已编辑:这不是可扩展的选项。