GVKun编程网logo

为我的站点上的每个用户分配一个MySQL数据库是否合理?

22

最近很多小伙伴都在问为我的站点上的每个用户分配一个MySQL数据库是否合理?这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展1、PHP-获取MySQL数据库查询结果行数mysql数

最近很多小伙伴都在问为我的站点上的每个用户分配一个MySQL数据库是否合理?这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展1、PHP-获取MySQL数据库查询结果行数 mysql数据库下载64位 sql数据库实例下载 sql数据库补丁下载、mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值、MySQL 中创建用户分配权限(到指定数据库或者指定数据库表中)、MySQL 添加新用户、为用户创建数据库、为新用户分配权限等相关知识,下面开始了哦!

本文目录一览:

为我的站点上的每个用户分配一个MySQL数据库是否合理?

为我的站点上的每个用户分配一个MySQL数据库是否合理?

我正在创建一个基于用户的网站。对于每个用户,我将需要一些MySQL表来存储不同类型的信息(即userInfo,quotesSubmitted和ratesSubmitted)。是一个更好的主意:

a)为站点创建一个数据库(即“ mySite”),然后在其中创建数百或数千个表(即“ userInfo_bob”,“
quotessubmitted_bob”,“ userInfo_shelly”和“ quotesSubmitted_shelly”)

要么

b)创建数百或数千个数据库(即“ Bob”,“ Shelly”等),每个数据库仅创建几个表(即“
Bob”内部:userInfo,quotesSubmitted,ratesSubmitted等)

我应该使用一个数据库,在该数据库中使用多个表,还是每个数据库使用多个数据库和几个表?


编辑:

问题是我需要跟踪谁对什么进行了评分。这意味着,如果用户对300条报价进行了评分,则我需要能够准确知道用户对哪些报价进行了评分。

也许我应该这样做?

一表报价。一个表列出用户。一张表记录了已进行的所有评分(即三列:用户,报价,评分)。这似乎是合理的。有什么问题吗?

答案1

小编典典

使用一个数据库。

使用一张表容纳用户,用一张表容纳引号。

在这两个表之间,您有一个表,其中包含使用户与引号匹配的信息,该表将保存用户给出的引号的等级。

这种简单的设计将允许您存储几乎无限数量的报价,无限的用户,并且您可以将每个报价与零个或多个用户匹配,反之亦然。

中间的表将包含用户表和报价表的 外键

您可能会发现复习一些数据库设计基础知识会有所帮助,有关stackoverflow的问题很多。

从这些开始…

什么是归一化?

设计数据库时要记住的重要事项

“太多”有多少个字段?

更多表格还是更多列?

1、PHP-获取MySQL数据库查询结果行数 mysql数据库下载64位 sql数据库实例下载 sql数据库补丁下载

1、PHP-获取MySQL数据库查询结果行数 mysql数据库下载64位 sql数据库实例下载 sql数据库补丁下载

首先需定义一个数据库接口函数,可单独存为一个php页面

<span><span><?php </span><span><span>function</span><span>db_connect</span><span>()</span> {</span><span>$result</span> = <span>new</span> mysqli(<span>''数据库地址''</span>, <span>''账号''</span>, <span>''密码''</span>, <span>''库名''</span>);<span>//连接数据库</span><span>if</span> (!<span>$result</span>) {
      <span>return</span><span>false</span>;<span>//连接失败</span>
   }
   <span>return</span><span>$result</span>;<span>//返回数据库对象</span>
}
<span>?&gt;</span></span></span>
登录后复制

在另一php页面中,首先需使用include函数包含上述php页面,也即需保证上述接口函数能被正确调用

<span><span><?php </span><span><span>function</span><span>output_rows</span><span>(<span>$seller_id</span>)</span>{</span><span>$conn</span> = db_connect();<span>//连接数据库</span><span>if</span> (!<span>$conn</span>) {<span>//无法连接数据库</span><span>echo</span><span>"can not connect mysql"</span>;
        <span>return</span><span>''fail_mysql''</span>;
    }
    <span>$result</span> = <span>$conn</span>-&gt;query(<span>"SELECT * FROM t_order WHERE seller_id= ''"</span>. <span>$seller_id</span>.<span>"'' "</span>);<span>//查询数据</span><span>echo</span><span>$result</span>-&gt;num_rows;  <span>//输出行数</span>
}
<span>?&gt;</span></span></span>
登录后复制

通过调用上述定义的函数即可显示sql查询结果的行数,上述函数通过$result = $conn->query("SELECT * FROM t_order WHERE seller_id= ''". $seller_id."'' ");进行数据库的查询,查询t_seller表中seller_id等于$seller_id的所有行,并将结果集赋给$result,再通过使用$result->num_rows可取得查询结果的行数,用echo进行输出显示

立即学习“PHP免费学习笔记(深入)”;

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了1、PHP-获取MySQL数据库查询结果行数,包括了Mysql数据库方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值

mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值

如图(1),有这么一张表,表中有多个用户的、多个记录;
我想得到的是这个表中的每个用户的speed 这一栏的最值,如图(2)(只看数据)

告诉我怎么个思路就可以

谢谢哟 ^_^

【图 1】
mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值

【图 2】
mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值

立即学习“PHP免费学习笔记(深入)”;

回复内容:

如图(1),有这么一张表,表中有多个用户的、多个记录;
我想得到的是这个表中的每个用户的speed 这一栏的最值,如图(2)(只看数据)

告诉我怎么个思路就可以

谢谢哟 ^_^

【图 1】
mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值

【图 2】
mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值

立即学习“PHP免费学习笔记(深入)”;

select user, max(speed) from table group by user
登录后复制

第一次统计,后续通过缓存方案

MySQL 中创建用户分配权限(到指定数据库或者指定数据库表中)

MySQL 中创建用户分配权限(到指定数据库或者指定数据库表中)

一、用户权限指定导库:

1 新建用户
 

// root 用户登陆 MySQL
mysql -uroot -p
Enter password:
// 新建用户
mysql>insert into mysql.user(Host,User,Password) values("localhost","buff",password("buff"));
// 刷新系统权限表
mysql>flush privileges;

这样就创建了一个名为:buff,密码为:buff 的用户。

2 登陆测试

mysql>exit
// 用户 buff 登陆 MySQL
mysql -ubuff -p
Enter password:
mysql>

说明新建的用户 buff 登陆成功。

3 用户授权

// root 用户登陆 MySQL
mysql -uroot -p
Enter password:
// 为用户 buff 创建一个数据库 bluebuff
mysql>create database bluebuff;
// 授权用户 buff 拥有数据库 bluebuff 的所有权限
mysql>grant all privileges on bluebuff.* to buff@localhost identified by ''buff'';
mysql>flush privileges;

 4 登录测试

// 用户 buff 登陆数据库
mysql -ubuff -p
Enter privileges:
// 显示数据库
mysql>show databases;

结果如下图所示,说明为用户 buff 授权成功

 

二、用户授权到指定数据库的某张表

与数据库授权步骤一样只是这里需要调整

mysql>grant all privileges on bluebuff. 表名 to buff@localhost identified by ''buff'';// 把原来的 * 修改为表名即可

 

注意:若原本想对表进行授权,结果对整个库授权了,此时需要调整用户的权限,需要 删除账号同时删除权限:1. 删除用户,2. 删除用户的权限

命令如下:

mysql>Delete FROM user Where User=''test'' and Host=''localhost'';

mysql>flush privileges;

删除账户及权限:>drop user 用户名 @''%'';// 远程访问账号

>drop user 用户名 @ localhost; // 本地服务器授权

若不删除权限,你会发现新建同样的账号还是对数据库授权,而没有对表进行授权,即使使用了(grant all privileges on bluebuff. 表名 to buff@localhost identified by ''buff'';)但是还是对库进行授权。而不是对指定的表进行授权。

 

参考链接:

https://www.cnblogs.com/afee666/p/6839585.html

https://www.cnblogs.com/wanghetao/p/3806888.html

https://zhidao.baidu.com/question/1046129103181384259.html

MySQL 添加新用户、为用户创建数据库、为新用户分配权限

MySQL 添加新用户、为用户创建数据库、为新用户分配权限

https://blog.csdn.net/u013216667/article/details/70158452

登录 MySQL

mysql -u root -p  

添加新用户

允许本地 IP 访问 localhost, 127.0.0.1

create user ''test''@''localhost'' identified by ''123456'';

允许外网 IP 访问

create user ''test''@''%'' identified by ''123456''; 
 
刷新授权

 

flush privileges; 

 

为用户创建数据库

 

create database test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;  

为新用户分配权限

授予用户通过外网 IP 对于该数据库的全部权限

 

grant all privileges on `testdb`.* to ''test''@''%'' identified by ''123456'';  
授予用户在本地服务器对该数据库的全部权限

 

grant all privileges on `testdb`.* to ''test''@''localhost'' identified by ''123456''; 

 

刷新权限
flush privileges;
退出 root 重新登录
exit  
用新帐号 test 重新登录,由于使用的是 % 任意 IP 连接,所以需要指定外部访问 IP
mysql -u test -h 115.28.203.224 -p  

 

在 Ubuntu 服务器下,MySQL 默认是只允许本地登录,因此需要修改配置文件将地址绑定给注释掉:

 

     # Instead of skip-networking the default is now to listen only on  
    # localhost which is more compatible and is not less secure.  
    #bind-address       = 127.0.0.1     #注释掉这一行就可以远程登录了  

 

本文同步分享在 博客 “lxw1844912514”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

关于为我的站点上的每个用户分配一个MySQL数据库是否合理?的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于1、PHP-获取MySQL数据库查询结果行数 mysql数据库下载64位 sql数据库实例下载 sql数据库补丁下载、mysql - PHP 数据库,一个表中有多个用户的多个记录,如何获取这个表中的每个用户的最值、MySQL 中创建用户分配权限(到指定数据库或者指定数据库表中)、MySQL 添加新用户、为用户创建数据库、为新用户分配权限的相关知识,请在本站寻找。

本文标签: