我在桌面设计方面没有太多经验.我的目标是创建一个或多个满足以下要求的产品表:
支持多种产品(电视,手机,PC,......).每种产品都有不同的参数集,例如:
手机将有颜色,尺寸,重量,操作系统......
PC将有CPU,HDD,RAM ......
参数集必须是动态的.您可以添加或编辑您喜欢的任何参数.
如果没有针对每种产品的单独表格,我如何满足这些要求?
MyISAM的设计理念是,您的数据库查询的次数远远超过其更新的数据,因此它可以执行非常快速的读取操作.如果您的读写(插入|更新)比率小于15%,则使用MyISAM更好.
InnoDB使用行级锁定,具有提交,回滚和崩溃恢复功能来保护用户数据.它支持事务和容错
以上MyISAM和InnobDB之间的差异是否正确?如果MYISAM和InnobDB有任何其他限制,请指导.我应该何时使用MyiSAM或何时使用Innodb?谢谢!
如何在两列上设置唯一约束?
class MyModel extends Migration {
public function up()
{
Schema::create('storage_trackers', function(Blueprint $table) {
$table->increments('id');
$table->string('mytext');
$table->unsignedInteger('user_id');
$table->engine = 'InnoDB';
$table->unique('mytext', 'user_id');
});
}
}
MyMode::create(array('mytext' => 'test', 'user_id' => 1);
// this fails??
MyMode::create(array('mytext' => 'test', 'user_id' => 2);
Run Code Online (Sandbox Code Playgroud) 我在MySQL中有两个表.表人员具有以下列:
id | name | fruits
Run Code Online (Sandbox Code Playgroud)
该fruits列可以保存null或字符串数组(如'apple','orange','banana')或('strawberry')等.第二个表是Table Fruit并具有以下三列:
____________________________
fruit_name | color | price
____________________________
apple | red | 2
____________________________
orange | orange | 3
____________________________
...,...
Run Code Online (Sandbox Code Playgroud)
那么我应该如何设计fruits第一个表中的列,以便它可以保存从fruit_name第二个表中的列中获取值的字符串数组?由于MySQL中没有数组数据类型,我应该怎么做?
我想在创建时为表中的某些列添加索引.是否有办法将它们添加到CREATE TABLE定义中,或者我是否必须在其后使用其他查询添加它们?
CREATE INDEX reply_user_id ON reply USING btree (user_id);
Run Code Online (Sandbox Code Playgroud) 我有一个MySQL数据库,我试图找到一种方法只导出其结构,没有自动增量值.mysqldump --no-data几乎可以完成这项工作,但它保留了auto_increment值.有没有办法不使用PHPMyAdmin(我知道它可以做到)?
我的Rails应用程序有一个PostgreSQL数据库.在名为"public"的模式中,存储了主Rails模型表等.我创建了一个"discogs"模式,其中的表名称有时与"public"模式中的名称相同 - 这是其中一个原因.我正在使用模式来组织这个.
如何从我的应用程序中的"discogs"架构设置模型?我将使用太阳黑子让Solr为这些模型编制索引.我不确定你会怎么做.
postgresql ruby-on-rails schema-design models database-schema
如何指示mysqldump使用insert语句中的列名进行备份?
在我的情况下,我没有正常的备份与插入sql的结果
LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users`
INSERT INTO `users` VALUES (1
Run Code Online (Sandbox Code Playgroud)
结构体.
现在我继续从用户的架构中删除了一列.在此之后,当我运行备份sql时,我得到列号不匹配错误.
要解决此问题,我如何指示mysqldump也写入列名?我现在就是这样做的
mysqldump --host=${dbserver} --user=${dbusername} --password=${dbpassword} \
--no-create-db --no-create-info --extended-insert --single-transaction \
--compress tablename
Run Code Online (Sandbox Code Playgroud)
在更广泛的层面上,管理这些架构更改的最佳做法是什么?
我想在所有数据库的所有表中找到所有列名.有查询可以帮我吗?该数据库是Microsoft SQL Server 2000.
根据这篇博客文章,大多数使用EF迁移的公司都不会使用EF迁移更新生产数据库的数据库模式.相反,博客文章的作者建议使用Schema更新脚本作为部署过程的一部分.
我已经使用Schema更新脚本几年了,当它们工作时,我计划将来使用EF迁移,原因如下:
我可以想到的一个原因是,如果数据库模式只是由DBA而不是开发人员改变,那么禁止使用EF来迁移生产数据库.但是,我既是DBA又是开发人员,所以这在我的案例中并不重要.
那么,使用EF更新生产数据库有哪些风险?
编辑:我想补充一点,正如solomon8718已经建议的那样,我总是将生产数据库的新副本提取到我的登台服务器,并在将它们应用到生产服务器之前测试要在登台服务器上应用的EF迁移.对于生产系统的任何架构更新,IMO都是必不可少的,无论我是否使用EF迁移.
database-schema ×10
mysql ×4
mysqldump ×2
postgresql ×2
c# ×1
database ×1
export ×1
laravel-4 ×1
models ×1
sql ×1
sql-server ×1
t-sql ×1