-1

我正在为一个小型公寓管理网站创建数据库。

基本上会有一个用户登录表单,他们可以在其中插入他们的公寓,描述,照片。由于我将使用关系表,因此我想确保我正在创建正确的数据库。有人可以看看并发表意见吗?

USERS:
  - id_user;
  - username;
  - password;
  - email;

APARTMENTS:
  - id_apartment;
  - id_user;
  - title;
  - description;
  - map;
  - gallery;

GALLERY_IMAGES:
  - id_gallery;
  - id_apartment;
  - image;
4

2 回答 2

1

看起来您的设计仅允许“公寓”与单个用户相关。

我建议每个表的主键是一个名为id. 并且对该主键的任何外键引用都将被命名为tablename_id.

您需要查看关系的基数。一个“用户”可以与多个“公寓”相关联吗?一个“公寓”可以与多个“用户”相关吗?一个“图像”可以与多个“公寓”相关联吗?等等

当我们找到“多对多”关系时,我们通常使用关系表来解决它。

如果一个“公寓”可以与多个“用户”相关,给定...

apartment (id PK, ... )

user (id PK, ... )

我们将添加第三个表,外键的组合是唯一的

user_apartment ( user_id FK, apartment_id FK, UNIQUE KEY (user_id, apartment_id) )

您似乎有一个“画廊”的概念,这与您的“图像”概念不同。(考虑可以“唯一识别”并且您想要存储相关信息的实例。)

一张图片可以在多个画廊中吗?一个画廊可以有多个图像吗?画廊可以与多个公寓相关联吗?

如果一张图片只属于一个画廊,而一个画廊只与一个公寓相关,那么我将实现为......

gallery (id PK, apartment_id FK, ... )  
image (id PK, gallery_id FK, ...)
于 2012-07-10T15:20:23.733 回答
0

如果这确实是您的情况:(我猜)

公寓属于用户 公寓有 0 个或更多图像

那你为什么要引入画廊的概念?

USERS:
- id_user;
- username;
- password;
- email;

APARTMENTS:
- id_apartment;
- id_user;
- title;
- description;
- map;

IMAGES:
- id_image
- id_apartment;
- image_path;

如果是这种情况,那么画廊实际上是公寓的图像,我的意思是在你的 GUI 上调用它...

一些用户是否拥有不止一套公寓?

于 2012-07-10T15:20:07.977 回答