rain2 писал(а):
все они между собой связаны. Вопрос заключается в том как это все правильно проектировать, как все правильно спланировать, возможно есть какие то инструменты для этого или программы. Я не программист , это так сказать хобби и некоторые банальные вещи для меня превращаются в пытку. Приведу пример, например у меня есть категории и продукты , их связывает таблица products_categories, например мы удалили продукт , следовательно удаляем из таблицы products_categories связь . Это еще можно держать в голове, но что делать если связь с несколькими таблицами, или вы для этого пользуетесь листом A4. Надеюсь я понятно сформулировал вопрос?
Лично я пользуюсь бесплатной dbForge Studio for MySQL. Удобно редактировать таблицы и данные + есть дизайнер диаграммы - как раз тот пресловутый листик а4. Теперь о связях в таблицах. Все необходимые связи надо организовывать через внешние ключи (foreign keys), т.е. в таблице products_categories колонка product_id должна ссылаться на колонку id из таблицы products. Если внешний ключ выставлен, то:
1) Mysql сам проверяет значения product_id, чтобы вы случайно не вставили несуществующий id.
2) При удалении продукта (записи в таблице products) mysql сам удалит все записи из таблицы product_categories, где product_id равен id удаленного продукта. Для этого при создании ключа надо прописать действия при удалении и обновлении. Подробнее
http://denis.in.ua/foreign-keys-in-mysql.htm см. ON UPDATE и ON DELETE.
Что касается запоминания самой архитектуры приложения, связей и прочего тут 3 варианта: лист а4, доска с маркерами на стене или схема базы на компе(тот же dbforge легко сделает из бд картинку со схемой - таблицами, связями, колонками). Лично я пользуюсь всеми 3 способами.