0

这些是我的表格,第一个“壁纸”表格将存储网站上所有壁纸的唯一详细信息,第二个是“壁纸类别”,如果它被归类为壁纸或只是一张拍摄的照片,我将在其中存储被标记为摄影,第三个将包括可用的尺寸。最后两个表将用于稍后对数据进行排序,就像我将排序所有壁纸或所有标记为摄影或所有桌面壁纸等。我的问题是,我不确定创建表的可靠方法是什么,因为第二个和第三个表上有重复的数据,如果没有,那么如何即兴创作。最后一个请求是如何在 sql 数据库中实现这一点,例如我应该存储什么值来代替复选标记*..I' 我在这方面有点新,请帮忙。提前致谢! 表

4

1 回答 1

2

关于数据类型,这取决于数据库。有些提供 BIT 数据类型,而在另一些中您可能想要使用 CHAR(1) 或数字数据类型。考虑添加一个 CHECK 约束以将列限制为两个值并添加一个 NOT NULL 约束。

关于结构:如果您支持的集合类别和大小可能会发生变化,您可能希望将这些事实表示为关系:

create table wallpapers (
    wallpaper_id int, 
    wallpaper_name varchar, 
    ... , 
    primary key(wallpaper_id)
);

/* All categories your system handles */
create table categories (
    category_id int, 
    category_name varchar, 
    primary key(category_id)
);

/* Categories per wallpaper */
create table wallpaper_categories (
    wallpaper_id int, 
    category_id int, 
    primary key (wallpaper_id, category_id), 
    foreign key (wallpaper_id) references wallpapers (wallpaper_id),
    foreign key (category_id) references categories (categories_id)
); 

同样的尺寸。

这样,您不必在每次有新类别或大小时更改数据库设计。

于 2013-10-19T21:08:59.780 回答