帮助SQL和表优化

时间:2011-09-07 21:03:00

标签: sql

我有两件事要做:优化表,写一个查询。

customer
id    customer    year_in_business   is_discountable   customers_friend_id 
1     a           2                  true              2
2     b           3                  false             1
3     c           2                  true              1
4     d           3                  true              null

这里customer_friend_id指向同一个表的pk(id)。

product 
id   product 
1     xxx
2     yyy
3     aaaa

customer_product
customer_id  product_id
1             2
2             3
3             1

问题

  1. 如何在将来使这些表变得灵活或可扩展?
  2. 获取拥有朋友的每位客户的姓名以及该客户朋友的姓名。

1 个答案:

答案 0 :(得分:1)

以下是一条建议:删除customer.customers_friend_id并创建一个新的CustomerFriend表,如下所示:

CustomerFriend
customerFriendID  customerID  friendID
1                 1           2
2                 2           1
3                 3           1

这将允许拥有多个朋友的客户,并避免没有朋友的客户的空值。