如何在sql表中的同一列添加两个字段?

问题描述:

我想创建一个包含所有产品的评价和笔记用户如何在sql表中的同一列添加两个字段?

购买假设我创建一个表名“Users_rating_product”,它由一些列

user_id ->INT 
company->Varchar 
product1 -> 3 (rating of product out of 5)|(review of product) 
product2-> 4(rating)|(some review) 

我想知道我怎么能一个数据库在mysql中执行。我使用phpmyadmin的数据库创建

表看起来像

user_id | company |Ac     | TV   | fridge 

1  | goderaj |3 ,take more power |4,less power |5,efficient 

我想知道我怎么能做到这一点,以便在同一列

两个等级及注意事项进行产品展示为此,您将需要一张单独的桌子。称它为ProductRating。将一个唯一的密钥(ID)添加到表中,并将该密钥引用到您的Users_rating_product表中。

例如:

Users_rating_product:

user_id | company |Ac | TV | fridge 
1  | goderaj |1 | 2 | 3 
2  | somecomp |4 | 5 | 6 

ProductRating

ID | Rating | Review 
1 | 3  | Take more power 
2 | 4  | less power 
3 | 5  | efficient 
4 | 5  | excellent 
5 | 1  | awful 
6 | 3  | average 
+0

但也有许多用户和任何用户有很多公司又如何能成为关乎的产品有哪些心得? – SAC 2014-10-31 10:19:07

+0

你的表需要'user_id'。 – 2014-10-31 10:22:26

+0

@SAC - 我在示例中添加了另一个用户/公司,向您展示其工作原理。 – Savv 2014-10-31 10:27:04

有很多,你可以实现你的功能了。 但这不是用于编写查询的标准格式。

you can have comma seperated column in your database like this 
    user_id | company |Ac_mapping_id 
    1  | goderaj |1,REview for Ac 

为单独的两个值,你可以像这样

PARSENAME(REPLACE(String,',','.'),2) 'Name' 

查看详细参考分裂的两个值,你可以参考: click To refer

更好的方法是存储在不同的表产品说明。 您可以轻松地编写查询检索数据

user_id | company |Ac_mapping_id | TV_mapping_id | fridge_mapping_id 
1  | goderaj |1    | 2    | 3 

&店都在映射表中的评级&评论这样

Ac_mapping_id | Rating |Review 
1    | 1  |abcd  

所以对其他表。

用于检索的所有数据只使用LEFT OUTER JOIN

Select 
* 
from 
Users_rating_product mm 
Left outer join Ac_mapping_table ac on ac.ac_mapping_id = mm.ac_mapping_id 
.....so on 
+0

@SAC这是数据库规范化的一种方式 – 2014-10-31 10:40:25