我在一个基于用户的社交网络上工作。我正在用PHP建立网站,我想使用一个MySQL数据库来存储用户数据。我可以创建数据库/表,没有问题(我使用phpMyAdmin),我不确定需要多少个表,以及哪个表对我的web应用程序更实用。有很多表是不是很聪明?例如,用户表。使用列名USER_ID、EMAIL、PASSWORD、LAST_LOGIN,然后是一个名为USER_SETTINGS的表,该表将保存每个用户的帐户设置;另一个名为POSTS的表,其名称和值属于“状态更新”。或者把所有东西都放在一张表里是不是很聪明?最佳实践是什么?
发布于 2012-03-16 05:11:30
绝对不要把“所有的东西都放在一张表里”。您可能会得到“许多表”,但这听起来很糟糕--基本上,您应该根据逻辑使用情况对数据进行分段。
例如,如果您确实将帖子保存在用户表中-这是如何工作的?当他们创建一个新的帖子时会发生什么--你会添加另一个字段吗?(bad) -或向字段中添加另一个项目,并以字符(bad)...etc分隔。要做到这一点,唯一真正的方法是使用另一个表。你绝对不应该把帖子和放在同一个表中。
至于“个人资料数据”(或者你想叫它的任何东西),我喜欢把它分开--有些人喜欢把它放在用户表中--这是一个偏好问题。
在你的例子中,我建议这样做:
//users table
id,
email,
password,
last_login,
//...
//profiles table
id,
user_id,
profile,
age,
gender,
//...
//posts table
id,
user_id,
data,
created (datetime),
modified (datetime)发布于 2012-03-16 05:32:47
我目前也在建立一个社交网站。不要把所有的东西都放在一个表中。事实上,我甚至可以说,如果不能立即遇到大量问题,就不能将所有内容都保存在一个表中。
对于用户而言,我喜欢将密码放在一个单独的表中,并隐藏一个用户id交汇点。配置文件数据本身可能涉及连接到users表的表,这取决于您希望如何加强验证和输出的数据完整性。
我也会将所有的帖子放在一个单独的表格中。这纯粹是因为你可以根据用户id进行查询,然后限制帖子的数量,或者是你正在浏览的帖子的数量。简单地说,将它们放在users表中就像是说你写的就是你自己,而不是说你是独立的但相关的对象。
https://stackoverflow.com/questions/9728166
复制相似问题