我有桌子

items

products

brands

他们的内容:

products:

- samsung galaxy s2

- iphone 5

brands

- samsung

- apple

物品和产品之间的区别如下:

产品就是说iPhone.

商品是具有特定属性(例如颜色和购买价格)的特定用户的特定iPhone.

该产品iPhone具有Apple的品牌/制造商.

插入新项目时,我希望数据库从该项目所属产品中获取品牌,因此我的外键设置如下:

'db_name`.'products'.`productBrand`

我有两个品牌的ATM-三星和苹果.

当我尝试通过phpMyAdmin的界面插入新项目并且进入itemBrand列时,无论我选择了产品1还是2(三星Galaxy或iPhone5),下拉字段都只允许我使用一个选项-1(三星).在itemGenericProduct列.

我究竟做错了什么?

这是一些更详细的信息:

CREATE TABLE IF NOT EXISTS `brands` (

`brandId` int(11) NOT NULL AUTO_INCREMENT,

`brandName` varchar(30) NOT NULL,

`brandLogo` varchar(100) NOT NULL,

`brandDescription` text NOT NULL,

PRIMARY KEY (`brandId`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

--

-- Dumping data for table `brands`

--

INSERT INTO `brands` (`brandId`, `brandName`, `brandLogo`, `brandDescription`) VALUES

(1, 'Samsung', '', 'Manufacturer of ...'),

(2, 'Apple', '', 'American high-tech company ...');

--

-- Table structure for table `items`

--

CREATE TABLE IF NOT EXISTS `items` (

`itemId` int(11) NOT NULL AUTO_INCREMENT,

`generalProductId` int(11) NOT NULL,

`itemPurchasedPrice` double NOT NULL,

`itemDateAdded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

`itemDescription` text,

`itemBrand` int(11) NOT NULL,

`itemBoughtFromPlace` int(11) NOT NULL,

`itemBoughtFromUser` int(11) NOT NULL,

`itemConditionNew` tinyint(1) NOT NULL DEFAULT '1',

`itemBeingSold` tinyint(1) NOT NULL DEFAULT '1',

`itemSellPrice` double DEFAULT NULL,

PRIMARY KEY (`itemId`),

KEY `generalProductId` (`generalProductId`),

KEY `itemBrand` (`itemBrand`),

KEY `itemBoughtFromPlace` (`itemBoughtFromPlace`),

KEY `itemBoughtFromUser` (`itemBoughtFromUser`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--

-- Table structure for table `products`

--

CREATE TABLE IF NOT EXISTS `products` (

`productId` int(11) NOT NULL AUTO_INCREMENT,

`productName` varchar(200) NOT NULL,

`productTimeAdded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

`productDescription` text,

`productBrand` int(11) NOT NULL,

`productFirstAddedFrom` int(11) NOT NULL,

`productAvatar` varchar(100) DEFAULT NULL,

PRIMARY KEY (`productId`),

KEY `productBrand` (`productBrand`,`productFirstAddedFrom`),

KEY `productFirstAddedFrom` (`productFirstAddedFrom`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

--

-- Dumping data for table `products`

--

INSERT INTO `products` (`productId`, `productName`, `productTimeAdded`, `productDescription`, `productBrand`, `productFirstAddedFrom`, `productAvatar`) VALUES

(3, 'Samsung Galaxy SII', '2013-10-26 07:46:08', 'The Samsung Galaxy S II is a .....', 1, 1, NULL),

(4, 'iPhone 5', '2013-10-26 07:46:08', 'The iPhone 5 is a ....', 1, 2, NULL);

编辑:

PRODUCTS表中的以下几行似乎很奇怪

KEY `productBrand` (`productBrand`,`productFirstAddedFrom`),

KEY `productFirstAddedFrom` (`productFirstAddedFrom`)

因为在视觉布局中,它们看起来是这样的:

mysql第三个表外键_mysql-当有3个相互依赖的表时外键的工作方...相关推荐

  1. mysql无法添加或更新子行_MySQL错误1452-无法添加或更新子行:外键约束失败?

    每当我们在表之间添加外键约束并将记录插入子表中时,都会发生此错误.让我们来看一个例子. 创建子表.mysql> create table ChildDemo -> ( -> id i ...

  2. mysql 删除另一个表中的_mysql – 在一个查询SQL中删除两个表中的记录

    我有两张桌子 EMPGROUP_TBL SEQID | MASTERID | BUSINESS_UNIT | DIVISION | SUB_DIVISION | CLASSIFICATION | SU ...

  3. mysql or会用到索引吗_mysql or条件可以使用索引而避免全表

    在某些情况下,or条件可以避免全表扫描的. 1 .where 语句里面如果带有or条件, myisam表能用到索引, innodb不行. 1)myisam表: CREATE TABLE IF NOT ...

  4. 计算机f8键的功能,详解:XP系统修改启动时F8键有哪些功能?

    Windows Xp系统中有许多的功能键,这些功能键可以让我们的操作更加方便快捷,但是不少用户却对这些功能键知之甚少.接下来,小编将向大家详细XP系统电脑在更改启动时,F8键有哪些作用. F8键的功能 ...

  5. mysql数据库和表的关系_MySQL数据库学习【第六篇】表与表之间的关系

    表1 foreign key 表2 则表1的多条记录对应表2的一条记录,即多对一 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 ...

  6. mysql数据库表删除数据库_mysql删除数据库和删除数据库中的表

    1. select sleep(2);执行睡眠2秒 2. delete from tablename:清空一个表内容,但不清空表结构,该表格仍然存在,而且表格中列的信息不会改变 drop table ...

  7. mysql 查询每天某个时间段的数据_mysql 中,统计一个时间段内每天8时到12时的数据的查询语句怎么写?...

    比如 2012-12-11 8:00:00-12:00:00 到 2012-12-13 8:00:00-12:00:00 这3天内,8点到12点. 查询语句怎么写? 自己写出来了.EXPLAIN SE ...

  8. mysql删除表外键_MySQL删除所有表的外键约束、禁用外键约束

    数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能.在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的关联关 ...

  9. mysql建表 外键_mysql建表外键怎么设

    mysql建表外键怎么设 mysql建表时设置外键的方法:在"CREATE TABLE"语句中,通过"[CONSTRAINT ] FOREIGN KEY 字段名 [,字段 ...

最新文章

  1. MAT之GA:遗传算法(GA)解决M-TSP多旅行商问题
  2. 【转】使用Windows Backup备份Exchange 2007 SP2和Exchange 2010
  3. wxWidgets:wxMDIParentFrame类用法
  4. MyBatis 源码解读-pluginElement()
  5. LintCode 795. 4种独特的路径(DFS)
  6. drawer的用法_MMDrawerController抽屉侧边栏的简单使用
  7. 终于知道为什么NVIDIA的linux驱动这么烂了,一波官方文档告诉你:Linux GPU Driver Developer’s Guide
  8. 详解MATLAB/Simulink通信系统建模与仿真源码
  9. 【线性代数】矩阵及其运算
  10. 计算机科学系绩效分配方案,山西大学计算机与信息技术学院岗位绩效实施方案.docx...
  11. 计算机应用软件开机自动启动设置,如何关闭开机自动启动的软件?
  12. 成长,从你发现自己写的代码很LOW开始
  13. 云计算、物联网、大数据到底是什么?
  14. Google Analytics
  15. 虚拟机改IP地址的方式
  16. 吴军:Google 中日韩文搜索算法的主要设计者,因《浪潮之巅》享誉业界 | CNCC 2018...
  17. 照片修复校正DxO ViewPoint 3
  18. JavaScript 函数 Call的使用
  19. 关于许嵩很有意境的歌词
  20. 分享笔记RabbitMQ高级之消息限流与延时队列

热门文章

  1. 简单网络嗅探器编写--------java
  2. 【JavaSE】网络编程 Jpcap的使用
  3. 报表生成器的必备知识,及报表主流软件
  4. React和redux,ES6等前端开发经验记录总结(都是干货,看到是你的运气)
  5. 初中生学Android开发,安卓手机软件学习推荐(几款适合中学生学习的软件)
  6. 【附申请地址】阿里云网盘,内测资格,开放申请了!非会员下载 10MB/s!有图有真相!...
  7. 吴军三部曲见识(二) 人生需要做减法
  8. 从零开始编写网络游戏--卷首语
  9. python入门推荐
  10. 前端 | (二)各种各样的常用标签 | 尚硅谷前端html+css零基础教程2023最新