我已经阅读了引用: 数据取决于键[1NF],整个键[2NF],只有键[3NF].
但是,我无法理解3.5NF或BCNF.这是我的理解:
那么为什么有些3NF表不在BCNF中呢?我的意思是,3NF引用明确地说"除了密钥之外",意味着所有属性仅仅依赖于主键.毕竟,主键是候选键,直到它被选为我们的主键.
如果到目前为止我的理解有任何不妥之处,请纠正我并感谢您提供的任何帮助.
我知道工厂和抽象工厂方法,但我想用Java创建一个DAO工厂模式.
我查了一下这个链接,但我很难理解.
任何人都可以借助一个例子来解释它吗?
编辑:这是我理解的DAO模式的一个例子:
public interface UserDAO {
public void insert(User user);
public void update(User user);
public void delete(int userId);
}
Run Code Online (Sandbox Code Playgroud)
执行:
public class UserDAOImpl implements UserDAO {
@Override
public void delete(int userId) {
// delete user from user table
}
@Override
public User[] findAll() {
// get a list of all users from user table
return null;
}
@Override
public User findByKey(int userId) {
// get a user information if we supply unique userid …Run Code Online (Sandbox Code Playgroud) 我试图通过向ng-click添加一个函数,从页面中的模态导航到另一个页面.当我删除分配给ng-click的功能时,数据关闭正常工作并且模态被删除.但是当我使用带有函数的ng-click时,它会重定向到另一个页面,它会被定向到页面,但是模态还没有被解除.(新页面似乎处于禁用状态)
<button type="button" class="btn btn-success" ng-click="addNewProject()"
data-dismiss="modal">Add Project</button>
Run Code Online (Sandbox Code Playgroud)
addNewProject()函数重定向到另一个页面,并将模态中的详细信息添加到数据库中.我想知道一种以可编辑的方式获取稍后加载的页面的方法.(模态应该完全删除.)
我正在开发一个使用coffeescript进行开发和测试的项目.我在节点中使用mocha的--watch标志运行测试,这样我可以在进行更改时自动运行测试.
虽然这在某种程度上起作用,但只有./test/test.*.coffee文件在保存时才会重新编译.这是我的目录结构:
/src/coffee
-- # Dev files go here
/test/
-- # Test files go here
Run Code Online (Sandbox Code Playgroud)
mocha观察者响应/ src和/ test目录中的文件更改,但只要重新编译/ test目录中的文件,连续测试就会受到严重影响.如果我退出并重新启动观察程序进程,则还会重新编译源文件.我如何让mocha让咖啡编译器在每次运行时运行在测试文件中作为依赖项列出的开发文件?
我有一个数据库表,其中主键被定义为时间戳.应用程序根据触发的特定事件将记录插入数据库,并且使用的时间戳将是创建此实例的时间戳.由于此应用程序在多个服务器上运行,并且该事件同时在多个服务器中同时触发,因此在某些情况下,由于主键冲突,数据不会插入到数据库中.
为了避免这种情况,我可以改变什么?我现在的想法是,
在执行数据库插入之前等待一段随机时间.
Random r = new Random();
long time = r.nextLong() % 1000;
time = time < 0 ? -time : time; // making sure that the waiting time is positive
try {
Thread.sleep(time);
} catch (InterruptedException e) {
throw new CustomeException(e);
}
Table1DataAccess.getInstance().insert(new Date(), "some description"); // inserting data into the table which has two fields.
Run Code Online (Sandbox Code Playgroud)使主键成为复合键.
对我来说,它们都不是好的解决方案,有人能指出我正确的方向吗?
PS我尝试插入数据的表在Date类型中有timestamp列,我猜它只有几秒的精度.当我使用该类型时timestamp,它提供了默认的微秒精度,它最多可以提供纳秒.
我正在编写一个程序,我需要将2D数组(板)的多个元素(由空白变量指定)设置为0.(数组大小为9x9)这些位置必须随机拾取并且一旦我使用以下代码段来执行此操作,程序在某些情况下最终会出现分段错误,并且不会将所需的位置数设置为0.
i = rand() % 10;
j = rand() % 10;
if (board[i][j]){
board[i][j] = 0;
blanks--;
}
Run Code Online (Sandbox Code Playgroud)
我一直在查看这个问题,并且知道这rand()不是线程安全的.这是我得到的分段错误的原因,还是别的什么?
此外,有解决方法吗?(对我来说,得到一组没有这个分段错误的随机数)
database ×2
java ×2
3nf ×1
angularjs ×1
arrays ×1
c ×1
coffeescript ×1
css ×1
dao ×1
html ×1
javascript ×1
mocha.js ×1
mysql ×1
node.js ×1
primary-key ×1
random ×1
tdd ×1
unit-testing ×1