Я плохо знаком с проектированием баз данных, дайте мне совет об этом.
1, Когда я должен использовать сводный индекс?
Я не уверен, что действительно индексирует, делает, но я действительно знаю, что мы должны поместить его, когда это будет heavly, загруженный как для, ГДЕ проверено = 1 и в поиске как company.name = что-то. действительно ли я прав?
2 индекса MySQL - сколько достаточно?
это как раз?
это просто правильно?
Спасибо.
редактирование*
правила.
- каждый пользователи (член компании или владельцы) мог быть членом компании
- каждая компания имеет некоторого члена пользователей.
- существуют администраторы компании (генеральный директор, администраторы) и существуют члены компании (вставляет продукты),
- каждая компания может иметь продукты.
для номера 3 я добавлю немного в users_company - 1, для администратора - 0, для участников
Выглядит хорошо, хорошо нормализовано, по крайней мере, для меня.
Я заметил, что каждый продукт может принадлежать только одной компании. Если это то, что вы задумали, то все в порядке, в противном случае вы могли бы сделать так, чтобы продукт имел свой собственный PID и имел таблицу отношений product_company, что позволило бы более чем одной компании продавать определенный продукт. Зависит от того, кто управляет продуктами, я думаю.
Я заметил, что таблица пользователей называется 'users' (множественное число), а остальные - единственное число ('company', 'product'). Но это уже мелочи.
Ничего хорошего.
Пример: мне нужно несколько фотографий моего продукта. Пожалуйста, позвольте мне загрузить более одной фотографии моего продукта!
Единственный комментарий, который у меня есть, это то, что вы можете рассмотреть возможность просто добавить столбец mapping_id в таблицу users_company и сделать CID и UID внешними ключами, а также добавить ограничение UNIQUE.
Таким образом, у вас будет отдельный первичный ключ для записей в этой таблице, который не будет зависеть от структуры других таблиц или какой-либо бизнес-логики.