#sql #database
Вопрос:
Я новичок в базах данных SQL и хотел бы знать, может ли кто-нибудь показать мне, как лучше всего хранить пользователя и связанные с ним данные, которые могут быть записями переменной длины. Я использую python для добавления информации о 2D-списке в свою базу данных: [user, name, [photo1, photo2,...]]
это формат для каждого индекса основного списка.
Мой пример-нужен пользователь, и у него может быть X фотографий на свое имя. У каждого пользователя есть идентификатор первичного ключа и заголовок(имя).
Мои мысли из того, что я прочитал, состоят в том, чтобы иметь основную таблицу, в которой у каждого пользователя есть идентификатор первичного ключа и имя, а также удостоверение личности с фотографией.
ID | Название | Фотография |
---|---|---|
1 | Боб | 1 |
2 | Джеймс | 2 |
Затем создайте вторую таблицу, в которой будут храниться ссылки на фотографии и ссылка на идентификатор фотографии этого пользователя в предыдущей таблице?
ID | Ссылка |
---|---|
1 | Image1.jpg |
1 | Image2.jpg |
2 | Image5.jpg |
2 | Image4.jpg |
2 | Image3.jpg |
Оставив мне информацию, которую я мог бы получить, такую как:
User id 1: Bob: (www.Image1.jpg, www.Image2.jpg)
User id 2: James(www.Image3.jpg, www.Image4.jpg, www.Image5.jpg)
Является ли это лучшей практикой? или есть лучший способ сделать это?
Комментарии:
1. Почти. На самом деле вам не нужна колонка «Фото». Уникального идентификатора достаточно, чтобы выступать в качестве внешнего ключа.
2. Однако вам следует придерживаться разумного соглашения об именовании имен таблиц и столбцов, так как столбец идентификатора во второй таблице, являющийся идентификатором с фотографией, будет довольно запутанным для сопровождающих.