最佳方法:每个操作一个表或所有操作一个表?

时间:2014-10-27 17:33:40

标签: sql-server database database-design

我正在为解决方案设计数据库。我面临以下情况:

  • 用户可以添加产品。本产品属于特定操作:“卖出”,“买入”等。
  • 另一位用户可以将产品标记为感兴趣。所以,我将有一个表来生成对某些内容感兴趣的用户。

我很难决定采用哪种方法:

  1. 我可以为每个操作创建一个表,例如“ProductSell”,“ProductBuy”等。感兴趣的用户也是如此(“InterestedProductSell”,“InterestedProductBuy”等)。
  2. ```

    User               ProductSell   ProductBuy   InterestBuy                 InterestSell
    ____________       ___________   __________   ___________                 ____________
    Id                 Id            Id           ProductId (ProductBuy PK)   ProductId (ProductSell PK)
    Name               Title         Title        UserId                      UserId
    Username           UserId        UserId       Date                        Date
    

    ```

    1. 我可以为所有操作创建一个表,其中一列名为“Operation”。感兴趣的用户也一样。
    2. ```

      User            Operation              Product       Interest
      ____________    _________              ___________   __________
      Id              Id                     Id            ProductId (ProductBuy or ProductSell PK)        
      Name            Name (Buy, sell, etc)  Title         UserId                     
      Username                               UserId        Date      
                                             Operation   
      

      ```

      你能否就这两种方法给我你的意见,甚至是我没有意识到的第三种方法?诸如性能,优化,维护,编码之类的东西......除了我对此的看法之外我还需要其他选择。

      如果有问题,我正在使用SQL Server。

1 个答案:

答案 0 :(得分:1)

Operation设置单独列的第二种方法看起来不错

用户

uid
name

产品

pid
name

userproduct

uid
pid
operation
time