Я настоятельно рекомендую CakePHP. Он автоматически создает для вас объединения на основе связей между таблицами.
Скажите, если вы писали блог:
app/model/post.php:
class Post extends AppModel {
var $hasMany = array('Comment');
}
app/controller/posts_controller.php:
function view($id) {
$this->set('post', $this->Post->read(null, $id));
}
app/views/posts/view.ctp:
<h2><?php echo $post['Post']['title']?></h2>
<p><?php echo $post['Post']['body']; /* Might want Textile/Markdown here */ ?></p>
<h3>Comments</h3>
<?php foreach($post['Comment'] as $comment) { ?>
<p><?php echo $comment['body']?></p>
<p class="poster"><?php echo $comment['name']?></p>
<?php } ?>
Это все, что вам нужно написать, чтобы просмотреть сообщение в блоге, схема вашей базы данных прочитана и кэширована. Пока вы держите его в соответствии с соглашениями, вам не нужно ничего рассказывать о том, как устроен ваш стол.
posts:
id INT
body TEXT
created DATETIME
comments:
id INT
body TEXT
name VARCHAR
post_id INT
Имеются адаптеры для поддержки MySQL, MSSQL, PostgreSQL, SQLite, Oracle и других. Вы также можете обернуть веб-сервисы в качестве моделей и даже заставить их выполнять соединения между данными в вашей базе данных и удаленными данными! Это очень умные вещи.
Надеюсь, это поможет:)