- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个收集和处理用户信息的应用程序。
CREATE TABLE registrations(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(50),
email_id INT
);
CREATE TABLE email(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50),
person_id INT
);
CREATE TABLE person(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);
ALTER TABLE registrations
ADD FOREIGN KEY (email_id) REFERENCES email (id);
ALTER TABLE email
ADD FOREIGN KEY (person_id) REFERENCES person (id);
工作流程是:
-处理注册信息,
-如果电子邮件是新的,则添加它,否则分配它。
-如果该人是新人,则添加它,否则分配它。
示例代码:
function newRegistration($input){
$registraton = new Registration();
$registraton->setUsername($input['username']);
$registraton->save();
$email = null;
if(Email::exists($input['email'])){
$email = Email::find($input['email']);
}else{
$email = Email::create($input['email']);
}
$registraton->setEmailId($email->getId());
$registraton->save();//!!
$person = null
if(Person::exists($input['name'])){
$person = Person::find($input['name']);
}else{
$person = Person::create($input['name']);
}
if(!$email->getPersonId()){
$email->setPersonId($person->getId());
$email->save();//!!
}
}
代码只是示例,在实际实现中还有更多的触发器和依赖项,以及处理事件的顺序:
注册->电子邮件->人员
这显然不是更新刚刚创建的元素的便捷方法...我正在寻找如何优化此场景的设计模式或数据库架构。
编辑:
一个邮箱可能有多个注册,一个人可能会收到多封电子邮件。
最佳答案
我很难理解为什么尝试使用系统中存在的名称但不同的电子邮件进行注册会导致将不同的电子邮件与现有用户相关联。通常,在这样的系统中,电子邮件被视为唯一的 ID,新用户被迫选择不存在的用户名。此外,如果这是典型的交互式注册,则很可能不需要将注册尝试存储在单独的表中。如果您确实希望用户与多个邮件关联,更好的方法可能是将初始注册电子邮件视为主要电子邮件,并允许登录用户将辅助电子邮件添加到其帐户。
关于php - 反转多对一层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694741/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!