我正在为小型公寓管理网站创建数据库。
基本上会有一个用户登录表单,他们可以在这里插入他们的公寓,附带说明,照片。因为我将使用关系表,所以我想确保我正在创建数据库。有人可以看看并发表意见吗?
USERS:
- id_user;
- username;
- password;
- email;
APARTMENTS:
- id_apartment;
- id_user;
- title;
- description;
- map;
- gallery;
GALLERY_IMAGES:
- id_gallery;
- id_apartment;
- image;
答案 0 :(得分: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, ...)
答案 1 :(得分:0)
如果这确实是你的情景:(我猜)
公寓属于用户 公寓有0或更多图像
那你为什么要介绍一个画廊的概念?
USERS:
- id_user;
- username;
- password;
- email;
APARTMENTS:
- id_apartment;
- id_user;
- title;
- description;
- map;
IMAGES:
- id_image
- id_apartment;
- image_path;
如果是这种情况,那么画廊实际上是公寓的图像,我的意思是在你的GUI上称它为...
某些用户是否有多个公寓?