-1

好吧,所以我遇到了一个小问题,我有一个数据库和 2 个这样的表

Table User
user_id

Table UserrToData
user_id int pk
data_id int

Table UserData
data_id
name
nick

我得到了 user_id,我需要从 userdata 中获取记录,是否可以使用 1 个查询?

当然,如果有人知道如果他能帮助我,我会非常感激:)

对于选择我只有关系user_id > data_id

更新

伙计们,我得到了巨大的数据库,我只是将问题简化到最低限度^_-

4

3 回答 3

1

您应该过度考虑您的数据库设计。最高目标始终是防止冗余。

如果您希望用户拥有多个用户数据条目,您应该像这样定义您的数据库:

Table User
user_id pk

Table UserData
data_id pk
user_id fk
name
nick

所以查询将是SELECT * FROM UserData WHERE user_id = ?.

如果您只希望用户拥有一组用户数据,则应将其集成到用户表中:

Table User
user_id pk
name
nick

所以查询将是SELECT * FROM User WHERE user_id = ?.

于 2013-07-10T15:02:59.067 回答
1

希望这可以帮助:

SELECT name, nick
FROM  UserToData utd INNER JOIN UserData ud ON utd.data_id = ud.data_id
WHERE utd.user_id = [supplied userid]

然而,有了这么少的数据,就不需要单独的表,只需将 name 和 nick 存储在 User 表中:

Table User
user_id pk
name
nick
于 2013-07-10T15:01:06.717 回答
0

为什么将姓名和昵称放在单独的表格中?您可以将数据放在一个用户表中。了解有关如何在数据库中制定实体和关系的更多信息可能是明智的。

无论哪种方式,如果您以后需要在 Zend 中执行类似的操作,您可以使用 Zend_Db_Select 并进行连接。Lookie Lookie:http ://framework.zend.com/manual/1.12/en/zend.db.select.html#zend.db.select.building.join

于 2013-07-10T15:01:50.657 回答