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