Я не думаю, что удаление SQL является хорошим выбором, поскольку есть несколько таблиц, связанных с конкретным продуктом (например, учетная информация).
На уровне приложения, если на продукт уже есть ссылка из другой таблицы (например, Заказа), вы не сможете удалить его. Однако вы всегда можете деактивировать запись, добившись логического удаления продукта.