ISBN, ISO и составные ключи действительно очень логичны. Например модификация машины уникальна по составному ключу из производителя, модели, поколения и комплектации. Причем модель то в своё время уникальна по производителю и названию, а производитель по своему названию. То есть все ключи строковые. Ну логично же, что 2й BMW не может быть, зачем тут автоинкремент? Представьте что будет в комплектации, когда до ней дойдут все эти FK. А теперь представьте, что у вас пользователь хочет добавить в виртуальном гараже свою машину. Ну и каша...
Так что автоинкремент может и не логичен для человека, но в реляционных БД вещь незаменимая.
Для разработать и отдать исходники, которые разместят на другом IIS с настоящим MSSQL это пойдет. А если я хочу веб-приложение в интернеты выложить и ничего не платить, то mssql не светит?
А разве нельзя просто подключиться к SMTP серверу через сокет и сделать свои делишки? Я думал что PHP'шный mail так и работает. Не хочется делать сервак или юзать сторонние сервисы. Цель сообщений - уведомления о заказах с сайта.
В моём примере ворнинг как раз бесполезен. Если переменная не установлена, то и равна нужному значению она не может быть, так что моя программа пойдёт куда надо. А как вам такой пример:
$response = someSuperGetJson($url);
$response = json_decode($response, true);
if($response['result']['success']['code'] == 41)
{
// код
}
If при всех проверках превратится в
if(isset($response['result']) && and is_array($response['result']))
if(isset($response['result']['success']) && and is_array($response['result']['success']))
if(isset($response['result']['success']['code']) && and is_numeric($response['result']['success']['code']) && $response['result']['success']['code'] == 41)
{
// код
}