Database design 如何高效地为用户查询“;项目“;在数据库中?(亚马逊SimpleDB)
对不起,如果以前有人问过这个问题,我想不出该如何表述这个问题 我有一个数据库(特别是在AmazonSimpleDB中),其中我使用了两个域Database design 如何高效地为用户查询“;项目“;在数据库中?(亚马逊SimpleDB),database-design,amazon-simpledb,Database Design,Amazon Simpledb,对不起,如果以前有人问过这个问题,我想不出该如何表述这个问题 我有一个数据库(特别是在AmazonSimpleDB中),其中我使用了两个域 域1有一个包含一些常规信息的用户列表 域2是包含项目信息的项目列表 我希望能够从域1查询属于特定用户的所有项目。为此,每个项只能属于1个用户,因此域2中的一个属性是userID 在我知道之前,我认为最好的选择是在域1中保留一个属性,其中包含该用户拥有的项的列表(如item1&&item2&&item3&&etc),然后只查询该属性。我认为这会使它非常有效
- 域1有一个包含一些常规信息的用户列表
- 域2是包含项目信息的项目列表
(或者我应该在stackoverflow数据库中问这个问题吗?我不知道amazon simpledb,但在数据库术语中,您有两个表:第一个是用户表,大概至少存储一个用户id和用户名;第二个是项目表,其中存储项目id、项目名称及其当前所有者/用户 您不希望将用户拥有的项目列表存储在users表中的分隔列表中;遍历这个列表将是痛苦的。除此之外,items表中已经存在数据(用户拥有哪些项) 在标准SQL中,您可以编写以下查询来检索特定用户拥有的项目列表
select items.name
from items inner join users
on items.user = users.id
where users.username = 'Luis'
标准数据库是为处理具有数百万条目的表而构建的,因此不必担心效率(至少,只要添加适当的索引,您就需要在items表的“user”字段上创建索引)