- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的网站上有两种类型的人,用户和 guest 。实际上它们是相同的,除了创建/授权过程。
目前我有两个表:
t_users
userId[PRIMARY, AUTOINC] username[UNIQUE]
t_guests
guestId[PRIMARY, AUTOINC] userId
当有人进入网站时,脚本会执行以下操作:
1) 通过向 t_guests 插入新行来创建新的客人记录
2) 使用上一步生成的 guestId 添加新记录到 t_users (guest username = “Guest guestId”)
3) 更新第 2 步分配的访客记录设置 userId
我觉得这个数据库设计很糟糕,因为它包含很多漏洞。例如,如果用户名“Guest xyz”已存在于 t_users 表中,则第 2 步将失败,第 3 步将错误的值分配给 userId(取决于实现,它将是 0 或 guestId,在第 1 步分配)。
实际上我只需要 t_guests 表,因为它的自动递增功能可以为客人生成唯一的用户名。有没有办法只使用一个合并表并使用单个查询来注册客人?
更新:我可以执行以下操作以将客人插入单个表中:
SELECT @mg := IFNULL(MAX(guestId), 0) + 1 FROM t_users;
INSERT INTO t_users (guestId) VALUES(@mg);
但我不能确定,在执行这两个语句之间没有人在 t_users 中插入新的客人记录。而且我不能使 guestId 唯一,因为真实用户会将其设置为零。
最佳答案
如果你只有一张 table "用户ID、用户名、类型
对于用户名,您可以使用脚本生成一个 Guid 并将其用作用户名或其他随机变量。如果您使用 GUID,您几乎不可能获得 2 个冲突的 GUID。
此外,如果您确实有 2 个用户名冲突,如果您确保用户名列必须是唯一的,那么插入将失败,您可以再试一次。
这里绝对不应该只有一张 table 。
关于mysql - 数据库设计 : users and guests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12328391/
我想从另一个来ping一个vmware guest虚拟机。两者都是Windows XP并使用NAT。我将VMnet8的IP手动设置为192.168.18.1。 (不使用自动获取IP地址)。另外,我无法
我有一台 Windows 服务器,其 AD 通过 AD 连接同步到 Azure AD,用户正在使用 O365。然后,该租户中的某些帐户会作为 guest 帐户被邀请到另一个租户。 当我从 AD 中删除
我已经在 VPS Debian Linux 机器上安装了最新版本的 RabbitMQ。尝试通过访客/访客登录,但返回消息登录失败。我做了一些研究,发现出于安全原因,禁止通过访客/访客远程登录。 我还尝
情况是我尝试在IE8(Win 7 guest 操作系统)中测试网页,由于某种原因我在js ajax中使用的开发环境中使用了很多“http://localhost:8000” url,所以我无法通过知识
我在 VirtualBox 中使用 Ubuntu 18.04,在安装 guest 添加后,我可以在 virtualbox-guest-dkms 和 virtualbox-guest-dkms-hwe
除了一个问题,我刚刚让运行 CentOS 的 guest 盒完美运行。我正在尝试挂载共享文件夹。我已按照使用此代码获取共享文件夹“可安装”的说明进行操作: VBoxManage sharedfolde
我正在尝试将内容从主机复制到 guest 计算机,但为了复制,我需要安装 guest 附加磁盘。 或者还有其他方法可以访问 guest 计算机上的主机内容,反之亦然? 最佳答案 从 VirtualBo
在为 Web 应用程序用例图建模时,为用户可以拥有的每个角色创建一个角色是否更好?或拥有一个角色、用户和一个具有特权的矩阵? guest < 用户 < 版主 < 管理员 1: guest 、用户、版主
我正在尝试将内容从主机复制到来宾计算机,但要进行复制,我需要安装来宾添加磁盘。。或者,是否有其他方法可以访问来宾计算机上的主机内容,反之亦然?
关于如何解决该错误的任何想法: 在不支持的计算机上尝试了特定于 guest 的操作准备好与客人沟通。这不应该发生并且是一个错误应该报告。 vagrant up 之后? 最佳答案 如果您尝试在 Wind
我正在尝试使用 Virtual Box、Virtual Box Guest Additions 和 Vagrant 运行 Linux VM,并在我的 Windows 7 机器上安装一个文件夹。我已经尝
首先,使用 QEMU Virtual Machine (Debian Sparc64 Etch 4.0) ,我能够成功地从 Guest 到 Host ( ssh ) 获取 scp 和 MacOS Hi
我正在尝试将 KVM guest (Ubuntu 18.04)添加到本地网络,就像网络中的其他真实服务器一样。我在主机系统(Ubuntu 18.04)中配置了 KVM 桥接接口(interface),
当我使用这个命令时: vagrant up 我得到这个错误: [machine1] GuestAdditions versions on your host (4.3.36) and guest (5
我在我的主机上本地运行 MySQL,并且由于原因™我无法在我的 Vagrant 机器内运行它。我知道有一种方法可以通过 iptables 将所有流量转发到 3306 到主机的 IP 地址和端口来解决这
我已经在两台机器A和B之间建立了rabbitMQ联合,双向, 但是有错误 {auth_failure,"ACCESS_REFUSED - 使用身份验证机制 PLAIN 拒绝登录。有关详细信息,请参阅代
我有一个 Web 项目 GUI.. 我最初只与管理员一起工作。 因此,当管理员使用他的用户名和密码登录时,我使用表单例份验证将他重定向到默认页面“Default.aspx”。 但现在我还必须与 gue
我正在开展一个项目,我必须验证适用于英特尔凌动处理器和 Windows 7 操作系统的平台。 我用过: ManagementClass mgmt = new ManagementClass("Win3
我必须处理这个非常可怕的旧 python 项目,它只能在 Windows xp VM 中运行。有没有办法在主机中使用 pycharm 并连接到 guest 中的解释器(顺便说一句,这是 python
我有一个 PHP 项目,本质上是一家公司的订单处理网站。公司中的每个用户都可以访问该网站,并获得应用程序的特定凭据,以控制对页面和功能的访问。 现在我有一个允许访客访问单个页面的请求。这个请求的复杂点
我是一名优秀的程序员,十分优秀!