我有一个包含一些基本用户数据的小型数据库(uid,用户名,电子邮件,密码等),这些数据被各种SQL查询和PHP使用,因此有一个完整的表结构是有意义的。
然而,一个新功能将添加一些新表,其中每个用户将“拥有”这些表中的多个行(例如每个用户100KB的数据)。但是从数据库的角度来看,我真正希望能够做的就是为一个用户设置所有数据,或者为一个用户获取所有数据。
然后,只能使用JavaScript在客户端查看和编辑数据。当然JavaScript不能直接运行SQL查询,并且在编辑数据并作为HTTP POST提交之后,尝试通过跟踪用户所做的任何更改来在PHP中组合正确的UPDATE,INSERT和DELETE查询集。该会议有点复杂。
相反,我想的是在每个用户的数据库中只有一个TEXT字段,并在其中存储JSON或XML。然后可以给出JavaScript以填充HTML表,并且在用户完成对该表的编辑之后,JavaScript只需要从HTML表单收集所有数据并发布它。然后PHP只需要运行SQL查询来覆盖现有数据。
虽然这似乎是最简单的方法,但它似乎有点滥用SQL DB。我也想知道如果在第一种情况下由PHP生成初始的编辑前表是否更好,而不是文件加载后的JS?
答案 0 :(得分:1)
使用文本字段存储像您这样的案例的数据是一种常见做法。但是,如果您决定采取此行动,请考虑以下问题:
TEXT
),因此您应该了解您的数据库服务器以及部署配置。通常MySQL和PostgreSQL不会有问题,但根据我的经验,我遇到了Informix的严重问题 - 所以你的数据库服务器很重要。因此,总的来说,这在数据库开发方面并不是一个坏习惯,但正如您所见,提供了额外的注意事项。如果你把它们全部搞清楚(我不假装将所有内容都包含在我的列表中,只是我个人面临的最常见的那些),那么你就可以了。