需要MySQL表架构帮助

时间:2011-04-04 09:54:57

标签: mysql database-design

我在确定将某个表字段放在数据库中的位置时遇到了问题。 该数据库适用于分类广告网站。 我希望注册用户和非注册用户能够发布广告。如果未注册的用户发布广告,该网站应该询问他的联系电话,如果该用户已经注册,则应该使用存储在用户表中的联系电话。

现在我的问题是,是否可以在同一个表格字段中为已注册和未注册的用户存储联系电话? 如果是这样,该字段应该放在哪里,在分类广告表中,或在用户表中(注意表中的每个用户都有唯一的ID,因此,填写用户表与未注册的用户只是为了获得他们的联系电话只会用无用的数据填满表格

提前致谢!

3 个答案:

答案 0 :(得分:1)

你可以把手机字段放在广告表中,里面有一个is_registered字段。然后通过php检查is_registered,然后你知道在哪里搜索电话号码。

此致

答案 1 :(得分:0)

我会在你的设计中寻求灵活性,但是如果你的逻辑主要独立于用户是否注册而对待用户,我会使用同一个表,只为已注册的用户完成剩余的用户数据。我不会将用户数据存储在广告表中,即使只是为了清晰的数据组织。

我猜您的注册用户都将拥有用户名和密码,因此您只需检查这些用户和密码是否已注册。如果你以后不想改变你的逻辑,你当然应该仔细选择这种区别。

另一种方法:为什么不使注册变得如此简单以至于没有注册用户是没有意义的?我已经在所有情况下都要求提供电话号码,只需添加密码字段或自动生成密码字段,即可让所有用户注册。

我会要求发送电子邮件,以便您可以发送密码并可能要求进行帐户验证(现在或将来)。

答案 2 :(得分:0)

您可以将未注册用户的电话号码存储在同一个表的同一列中,您可能应该这样做。它使得从未注册用户到注册用户的过渡变得简单 - 您不必移动或重新输入电话号码。如果任何用户更改了电话号码,则只需在一个地方更新。 (你知道有多少人每天不小心把手机掉进厕所吗?这真是令人震惊。)

如果您现在依靠电话号码来识别注册用户,则需要先修复此问题。 (我不认为你这样做,但如果你是,那就先修好。)

你说

  

填写用户表   未注册的用户只是为了得到他们的   联系电话只会填满表格   无用的数据

如果它没用,请不要存储它。如果你需要存储它,它并没有用处。

您可以在分类广告终止时始终删除未注册的用户。但是。 。

要求联系电话号码而不是让用户选择留下电话号码或电子邮件地址是否有意义?就个人而言,我更喜欢使用丢弃的电子邮件地址来处理这类事情。