Хорошая ли это идея - разделять общие и пользовательские характеристики одной строки в двух таблицах MySQL?

Сейчас я делаю приложение для университета, в которое можно поместить свою одежду, и оно подберет вам наряд на день. Мы находимся в самом начале проекта, поэтому многое еще не готово, но у нас возникла проблема при разговоре с нашим профессором.

Мы говорили о базах данных и боролись с двумя возможными схемами по одной причине: одежда может быть не уникальной. Если она не уникальна, и у двух пользователей есть одинаковый топ, пара брюк и т. д., то

Он показал мне некоторые вещи, которые показывают, что я могу ошибаться, но он сказал мне написать здесь на всякий случай.

Он сказал, что было бы предпочтительнее сделать базу данных следующим образом:

  1. Users
  • user_id
  • (учетные данные пользователя и др.)
  1. Сессии
  • possession_id
  • possessor_id (FOREIGN)
  • обладание_одеждой_id (FOREIGN)
  • (личные параметры, например, сколько раз носил или является ли она любимой, например)
  1. Одежда
  • clothes_id
  • clothes_name
  • clothes_type
  • clothes_size
  • (обезличенные параметры, такие как цвет и другие)

Я предложил создать схему базы данных, которая делала бы одежду полностью уникальной, независимо от того, одинаковая она или нет, что в основном выглядело бы так:

  1. Users
  • user_id
  • (учетные данные пользователя и др.)
  1. Одежда
  • clothes_id
  • possessor_id (FOREIGN)
  • clothes_name
  • clothes_type
  • clothes_color
  • одежда_размер
  • (другие безличные параметры)
  • (персональные параметры, например, сколько раз носили или является ли вещь любимой)

Если у вас есть другие вопросы о БД или проекте, дайте мне знать.

Вернуться на верх