2012-06-26 109 views
1

我有一个用户表,一个资产表(例如包含一个值等于favorite_movie的记录)和一个user_to_asset表(包含userid,assetid和value,如'american history x “)。Mysql多表关系结构

我在想,是否还有一个点也有一个类型ID,还有一个类型的表,例如一个类型可能是用户的偏好或用户的详细信息....所以最终,user_to_asset表然后将包含一个用户标识符,typeid,assetid和值(当然,我将不得不改变表名bc我们现在包括在user_to_asset表中的typeid)..也许它会优化我的代码,因为例如我可以查询所有的偏好为一个用户只需通过typeid等于用户首选项和user_id等于用户查询user_to_assets表。

您认为如何?

回答

1

我想你想下表:

  • 用户(USER_ID,USER_NAME,电子邮件,theme_id)
  • 资产(ASSET_ID,asset_type_id,ASSET_NAME等)
  • user_to_asset(USER_ID,ASSET_ID)
  • 主题(theme_id,themestuff)
  • ASSET_TYPE(asset_type_id,ASSET_TYPE)

这可以让你说:

在向Jonathan的主题应用结果时,向我显示用户“Jonathan”类型为“movie”的所有资产。

+0

类型是资产的类型,而不是用户类型。例如,资产将是最喜欢的电影,并且此资产的类型将是用户详细信息。另一个例子是资产,资产类型是用户偏好(注意用户详细信息和用户偏好之间的差异,那些将是资产类型)这是否合理?我需要有一种资产吗? – jkushner

+0

我想我不了解用户的偏好是什么。 – AllInOne

+0

用户首选项将具有蓝色主题,而用户详细信息将是主要电子邮件地址。我想我会摆脱这个资产类型领域,这似乎有点荒谬(除非你能看到一个资产类型分配给记录的理由)。 – jkushner