我该如何为这个问题设计数据库ER-Diagram

时间:2010-08-11 03:14:44

标签: database

我有一些具体的问题需要解决,但我无法思考。

我有5-6个语句需要存储在我的数据库中。这个系统就像新闻一样。

  1. 声明1: A 安装了此网站。
  2. 声明2: A provinceX
  3. 中添加了商店R
  4. 声明3: B 审核了商店R
  5. 声明4: A 已修改商店R
  6. 声明5: A product_category1
  7. 中添加产品P
  8. 声明6: B 审核产品P
  9. 请注意,粗体是动态数据,例如A,B是一些preson的名字,商店R是商店名称,人们添加。

    在我的想法中,我有

    • person_table(id,name,age,...)
    • store_table(sid,store_name,province_id,...)
    • product_table(pid,product_name,...)

    以及feed_table如何?

    我如何设计数据库来存储这些数据。以及如何查询此数据以进行查看。

    谢谢

1 个答案:

答案 0 :(得分:1)

这种问题有两种方法:

  1. 您以不重复信息的方式设计表格。基本上你感兴趣的饲料可以用现有的表格以高效的方式构建;或

  2. 您可以重复某些数据,以便更轻松地实施Feed。

  3. 就个人而言,我可能会去(2)并有一个新表:

    • Feed:id,person_id,store_id,action_id,province_id,product_category_id

    最后两个字段是可选的,基于操作(审核,编辑,添加等)。

    纯粹主义者会争辩说重复的数据是不好的(当然,正常的形式试图将其排除在外)但是在现实世界中,出于性能原因,数据库模式一直在这样做。

    以这种方式思考:你在申请中花了大部分时间做什么?

    1. 查看Feed(阅读);或
    2. 采取行动(写作)。
    3. 如果是(1),我怀疑它是,那么饲料表是有道理的。您通常希望优化读取而不是写入,因为写入的发生频率较低。