【问题标题】:Mysql Multiple tables relationship structureMysql多表关系结构
【发布时间】:2012-06-28 05:32:15
【问题描述】:

我有一个用户表、一个资产表(例如包含一条价值等于 favorite_movie 的记录)和一个 user_to_asset 表(包含用户 ID、资产 ID 和值,例如“美国历史 x”)。

我在想是否还有一个类型 id 以及类型表,例如类型可能是用户偏好或用户详细信息......所以最后,user_to_asset 表将然后包含一个用户标识、类型标识、资产标识和值(当然我必须更改表名,因为我们现在在 user_to_asset 表中包含了类型标识).. 也许它会优化我的代码,因为例如我可以查询用户的所有首选项只需通过 typeid 等于用户首选项和 user_id 等于用户查询 user_to_assets 表。

你怎么看?

【问题讨论】:

    标签: mysql relationship


    【解决方案1】:

    我认为您需要以下表格:

    • 用户(user_id、user_name、email、theme_id)
    • 资产(asset_id、asset_type_id、asset_name 等)
    • user_to_asset (user_id,asset_id)
    • 主题(theme_id,主题)
    • asset_type(asset_type_id,asset_type)

    这让你可以说:

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

    【讨论】:

    • types 是资产的类型,而不是用户类型。例如,资产将是最喜欢的电影,并且该资产的类型将是用户详细信息。另一个例子是资产,资产的类型是用户偏好(请注意用户详细信息和用户偏好之间的区别,这将是资产类型)这有意义吗?我需要拥有某种资产吗?
    • 我想我不明白用户偏好是什么。
    • 用户偏好将具有蓝色主题,而用户详细信息将是主电子邮件地址。我认为我要摆脱这个资产类型字段,这似乎有点荒谬(除非您可以看到将资产类型分配给记录的理由)。
    • 完全正确。但是您不明白,主题将是一项资产,而资产的类型将是用户偏好(因此不需要主题表)。那么,一般来说,是否有必要拥有资产类型?有什么好处吗?
    • 如果您希望能够按类型选择资产,您可能需要一个 assets_type 表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多