Mysql
 sql >> база данни >  >> RDS >> Mysql

Какъв е правилният начин за съхраняване на тези данни в MySQL схема?

Вместо един ред за всеки филм, използвайте таблица със стойности на атрибути. След това добавете допълнително поле към това, което посочва потребителя, което би било 0 за оригиналното подразбиране. Така таблицата изглежда така:

MovieID UserID  Attribute   Value
1       0       Title       12 Monkeys
1       0       Format      DVD
1       1       Title       Twelve Monkeys

Тогава заявка за получаване на заглавието ще изглежда така:

SELECT MovieID, IFNULL(my.Value, default.Value) AS title
FROM movies AS default
LEFT JOIN movies AS my ON default.MovieID = my.MovieID AND my.Attribute = 'Title' AND my.userID = @user
WHERE default.UserID = 0 AND default.Attribute = 'Title'

Някои дизайнери на бази данни също обичат да използват AttributeID вместо низ като име на атрибут и отделна таблица, която съпоставя имената на атрибути с идентификатори.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заявка за избор на Mysql въз основа на въвеждане на множество потребители

  2. SQL Regex функция, която е подобна на MySql REGEX функция

  3. Операция на подмножество на MYSQL

  4. Динамично зареждане на данни при превъртане на div с помощта на php, mysql, jquery и ajax

  5. Как да намеря комбинации от редове>колони с Cross Join? [SQL]