那么就用这样的关系:
十多年的花都网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整花都建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“花都网站设计”,“花都网站推广”以来,每个客户项目都认真落实执行。
商品表 属性表
商品id 属性id
商品名称 商品id
属性名称
属性值
CREATE TABLE product(
pid INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
pname VARCHAR(100) NOT NULL
);
CREATE TABLE product_act(
act_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
pid INT NOT NULL,
act_name VARCHAR(30) NOT NULL,
act_value VARCHAR(30) NOT NULL
);
插入数据后,结果如图:
SELECT a.pname , b.act_name, b.act_value
FROM product AS a JOIN product_act AS b
ON a.pid = b.pid
DECIMAL和NUMERIC都行
DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,例如货币数据。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:
salary DECIMAL(5,2)
在该例子中,5是精度,2是标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数
你好:由于价格是属于货币类型的。
所以可以使用decimal(m,n)这个数据类型来精确表达价格
不要使用float double等浮点数据类型 因为它们是不精确的 特别是在计算的时候
给你个参考,大概是添加一个销售状态,如果卖出了,就修改状态,不要删除数据,那样数据就保留了,具体你想想看还能完善不
create table telphone(
id int not null primary key auto_increment COMMENT '自增Id',
telname varchar(10) not null COMMENT '手机名称',
size int not null COMMENT '内存大小',
price DECIMAL(10,2) not null COMMENT '价格',
sale_status int not null default 1 COMMENT '销售状态,1-未销售,0-已销售'
)
MySQL中可以用来做价格的字段一般有float、double、decimal
如定义一个money字段类型为float(9,2),则money字段最大长度为9,整数位是6位,小数位是2位。
以下摘自MySQL 5.1参考手册:
1、FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
小(单精度)浮点数。允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。这些是理论限制,基于IEEE标准。实际的范围根据硬件或操作系统的不同可能稍微小些。
M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。
如果指定UNSIGNED,不允许负值。
使用浮点数可能会遇到意想不到的问题,因为在MySQL中的所有计算用双精度完成。参见A.5.7节,“解决与不匹配行有关的问题”。