多个表......
CREATE TABLE IF NOT EXISTS `pictures` (
`id` bigint(20) NOT NULL auto_increment,
`title` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `propPictures` (
`id` bigint(20) NOT NULL auto_increment,
`picture_id` varchar(255) NOT NULL,
`property_id` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
OR
CREATE TABLE IF NOT EXISTS `pictures` (
`id` bigint(20) NOT NULL auto_increment,
`title` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`property_id` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
????
谢谢
答案 0 :(得分:3)
这取决于。每张图片都只有一个property_id
吗?如果是这样,那么单个表就可以了。
答案 1 :(得分:2)
一个属性可以并且可能会有多个图片,所以你想要的是一个属性表,然后是一个包含属性id的图片表,并且有一个外键表。
顺便说一句,ID是id字段的一个糟糕选择。它会导致报告问题,并可能导致意外的连接问题。对于那些意味着不同的字段,两个表几乎不应该使用相同的名称。改为使用tablenameID。
答案 2 :(得分:0)
看起来你建议用于图片的table1,以及它可能具有的任何属性的table2。这通常比单个表设计更好,因为它可以轻松处理任何具有0,1或更多属性的给定图片。
答案 3 :(得分:0)
在pictures.id和property_id之间建立一对一的关系,单个表就足够了。如果此关系更改为一对多,则需要使用第二个表将一个pictures.id与多个属性ID相关联。