我正在研究Java Web应用程序.对于身份验证,我要求用户输入他的电子邮件和密码.现在,我正在使用JPA 2,这可能不是那么重要.
如果电子邮件是Users表的关键,那么它将简化我的生活.我可以做一个简单的事情:
User selected = em.find(User.class, userEmail);
Run Code Online (Sandbox Code Playgroud)
请参阅?,此外,每个电子邮件地址都是唯一的,它没有空格等.现在,没有人这样做,我猜这是有原因的.我也怀疑,我的意思是,它是varchar等.但你认为这是一个好主意吗?如果没有,为什么?这必须是一个很好的理由,因此权衡不值得.数字键总是最好的,但在这里我发现自己一遍又一遍地处理用户的电子邮件,并且一直通过电子邮件搜索它们,除了连接列等之外从未真正使用过id.
对数据库模式相当陌生(计划使用 SQLite)。话虽如此,我正在考虑使用代理键,因为数据库当前包含一个复合键(3 列),它出现在我的大多数表中。我有几个表,其中包含 3 列唯一键和一列包含一些信息;我还有一张表包含 3 列用于唯一键,以及相同的 3 列作为外键(许多父项)。将所有这些表组合成一个表似乎没有意义,因为会有很多空字段。
如果我选择其中之一,会不会掉坑?一般认为哪一种编程更方便?
先感谢您。
我想将[Required]属性添加到包含NULL值的现有数据库记录中,以及使用Code First Migrations自动生成数据库本身的位置.模型架构更新可能如下所示:
public class Product // BEFORE UPDATE
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
public string Color { get; set; }
}
public class Product // AFTER UPDATE
{
[Key]
public int ID { get; set; }
[Required]
public string Name { get; set; }
[Required] // <---- Added
public string Color { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我运行命令
add-migration MakeColorRequired // Runs successfully
update-database // Crashes …Run Code Online (Sandbox Code Playgroud) 我使用Propel ORM复制表模式,以便进行持续集成,但Propel只让我得到一个完全充实的模式,它不会让我获得测试数据(或者根本不需要基本的必要数据).
如何从具有版本控制的propel-genPropel ORM生态系统的实时/测试数据库中获取数据?
我在dbo下有一个表,在一个名为tmp的模式下有一个几乎相同的表.Visual Studio Schema Compare似乎不允许我选择一组基于dbo的对象,并将它们与一组类似的基于tmp的对象进行比较.
数据库服务器已锁定,无法创建第二个数据库.此外,由于资源限制,SQL服务器在本地开发计算机上不可用.tmp模式允许我对tmp进行更改,然后比较并将这些更改推送到"dbo"的dev模式.
比较这两组物体的最佳方法是什么?
我刚刚在阅读论文时遇到了 DFD,我知道如何使用 ERD 并且我已经阅读了有关 DFD 的内容。但是,我可以同时使用 DFD 和 ERD 来表示我的数据库设计吗?我可以同时使用 ERD 和 DFD 来表示项目中的数据库吗?
我必须比较两个SQL服务器数据库:
有什么好的工具可以做到这一点吗?
database ×3
sql ×3
sql-server ×2
asp.net-mvc ×1
c# ×1
comparison ×1
erd ×1
java ×1
jpa ×1
phpunit ×1
propel ×1
sqlite ×1