我的数据库里面用户(users)、商品(goods)都有多张图片,然后我把图片做成两张表一张用户图片表(usersImages)、商品图片表(goodsImages),但是我感觉这样做不太好,因为加入我现在又加了一个实体表,这个实体也有图片,那我岂不是又要建一张相对应的图片表,我想能不能把这两张图片表合成一张表(images),所有实体的图片资源都存在这一张表里面。求神帮助。PS:因为以前没学过数据库,因为毕业设计需要才临时自学了一点,如果有错的还请各位大神多帮助,给出其他好的方案。

解决方案 »

  1.   

    type表
    id
    name1,'商品'
    2,'用户'
    ... 
    image表
    id
    typeid
    referid
    url1,1,1,url1  --关联商品表id为1的记录
    2,1,2,url2  --关联商品表id为2的记录
    3,2,1,url3  --关联用户表id为1的记录
    ...
      

  2.   

    感谢您的回复,但是这样的话referid外键约束就有商品表和用户表,这样定义外键约束好像是错的,我试过了,没成功
      

  3.   

    我觉得你可以只做一个图片表 有组合主键CREATE TABLE IMAGES
    (
            IMAGETYPE NVARCHAR(2) not null,
    IID  INT not null ,
    URL NVARCHAR(100)
    )
    alter table IMAGES add constraint pk_imageID primary key(IMAGETYPE,IID)goods和users表各加个imageType属性。这样就只需要三个表