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

Дизайн на база данни за съхраняване на цветен модел на изображението в MySQL за търсене на изображение по цвят

Трябва да нормализирате това.

3 таблици:

Image {image_id, name}
Colors {color_id, red, green, blue, alpha}
ImageHasColor {image_id, color_id, number_of_times_appeared}

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

Изберете с обединения като:

SELECT * FROM
Image i
JOIN ImageHasColors h
ON i.image_id = h.image_id
JOIN Colors c
ON c.color_id = h.color_id
ORDER BY i.image_id

Вижте тази връзка за това как да конвертирате HEX цвят в RGB стойности:http://bavotasan.com/2011/convert-hex-color-to-rgb-using-php/

Търсете топ 10 наистина червени снимки:

SELECT * FROM
Image i
JOIN ImageHasColors h
ON i.image_id = h.image_id
JOIN Colors c
ON c.color_id = h.color_id
WHERE c.red > 200
AND   c.green < 50
AND   c. green < 50
ORDER BY h.number_of_times_appeared
LIMIT 10

Търсете доста черни снимки:

SELECT * FROM
Image i
JOIN ImageHasColors h
ON i.image_id = h.image_id
JOIN Colors c
ON c.color_id = h.color_id
WHERE c.red < 30
AND   c.green < 30
AND   c. green < 30
ORDER BY h.number_of_times_appeared
LIMIT 10


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Таблицата не съществува след CREATE TABLE

  2. MySQL лицензиране и GPL

  3. Заменете null с 0 в MySQL

  4. Как да генерирам UUIDv4 в MySQL?

  5. Как да експортирате база данни от Amazon RDS MySQL екземпляр към локален екземпляр?