【发布时间】:2011-07-27 23:37:11
【问题描述】:
我有一些带有许多表(大约 100 个)的旧数据库,旧系统使用 php 运行,并且对 NLP 中使用的数据进行了如此多的操作。 我有点好奇如何使用 Rails 来完成。我读到 ActiveRecord 对遗留系统没有好处!但是我播种了一些人使用它没有问题,那么为什么有些人会这样呢? 还考虑到以下 php 代码,其中包含许多 If 和 SQL 语句,有些人认为这种情况被认为是典型的数据/数据库任务而不是 OO 之一,因此最好远离 AcriveRecord 或任何其他 ORM。这是真的?如果没有,Rails 的 ActiveRecord 可以轻松完成吗?
假设所有变量都是从网络表单提交的。我们有一些文本要注释,我们必须看看是否有其他用户同意这个提交表单的用户。然后我们将更新同意表。
if ($submitted_id !=""){
$sql = "SELECT * FROM annotation WHERE relation_id = $relation_id";
$result = open_query($sql);
while ($row = mysql_fetch_assoc($result)) {
$user_id = $row["user_id"];
$line = "";
$sql = "SELECT * FROM agree WHERE user_id = $user_id AND user_id_agree = $submitted_id LIMIT 1";
$result = open_query($sql);
$line = mysql_fetch_array($result, MYSQL_ASSOC);
if ( $user_id != $submitted_id ) {
if ( $line == "" ) {
mysql_query ("INSERT INTO agree VALUES ('$user_id' , '$submitted_id', '1', CURRENT_TIMESTAMP)");
} else {
$total = $line["total"];
$new_total = $total+1;
mysql_query ("UPDATE agree SET total = $new_total WHERE user_id = $user_id AND user_id_agree = $submitted_id LIMIT 1");
}
}
}
}
问候
【问题讨论】:
标签: php database ruby-on-rails-3 activerecord