Здравствуйте! Я никогда не писал большие приложения, и теперь хотел создать приложение серьезное, но понял, что не умею проектировать бд и и приложения, так как зашел в тупик. Перерыл все торенты и гугл. (Может не туда рыл) Но не нашел дельной информации по данному вопросу.
КАК Я ДЕЛАЛ:
Касательно бд:
1) сформулировал задачу
2) выяснил какие должны быть функции у приложения
3) выделил сущности (пользователей, товары и т.д)
4) для этих сущностей создал entity и таблицы в бд (в sf2 автоматически)
5) связал как думал, что правильно, оказалось неправильно
6) ПОПАЛ В ТУПИК (в приложении появилось куча багов)
Касательно php и кода:
У меня в приложении есть импорт товаров. Для этого нужно парсить документ по регулярным выражениям. Где нужно написать парсер?
- в контроллере товаров а потом вызвать $this->parseProducts($list)
- в сущности (entity) как статический метод и вызывать Products::parse($list)
- создать сервис для импорта потом получить его через $this->get(...)->parse($list)
- где-то еще?
Как правильно помогите.... прошу... всегда всему учился сам а тут не знаю как и что делать....
Скажите есть ли какой-то принцип или алгоритм проектирования баз данных и приложений, может книги какие.
Есть 2 таблицы, все вроде как работает, вроде связал и данные отображаются нормально, но когда хочу удалить запись из 1 таблицы, то не могу, потому что она связанная. А мне нужно чтоб работало удаление и, то поле по которому они связанны во второй 2 таблице становилось null. Я знаю как это сделать в php, но потом если я захочу выполнить sql "SELECT * FROM .... SORT BY то поле по которому связанны", то тогда все записи у которых стоит нулл не выбираются. Я подозреваю :) что не правильно с самого начала придумал связи
Андрей неважно: так вам нужен внешний ключ просто. Это foreign key который. Назначив его, вы можете назначить поведение при удалении записи, например удалять связанные записи в других таблицах.
Если нет возможности использовать foreign key, то надо использовать транзакции.