我正在为视频制作项目管理应用程序设计数据库架构,并且在如何保留一些嵌入但不可重复的数据方面苦苦挣扎.在我参加的几个CS课程中,规范化关系数据库的一部分是识别可重复的块并将它们封装到自己的表中.如果我知道嵌入/嵌套数据块可能是记录中唯一的,那该怎么办?
示例:video记录有很多shoot_locations.这些地点很可能永远不会重演.shoot_locations也可以包含多个shoot_times.用JSON表示,可能如下所示:
{
video: {
shoot_locations: [
{
name: "Bob's Pony Shack",
address: "99 Horseman Street, Anywhere, US 12345",
shoot_times: {
shoot_at: "2015-08-15 21:00:00",
...
}
},
{
name: "Jerry's Tackle",
address: "15 Pike Place, Anywhere, US 12345",
shoot_times: {
shoot_at: "2015-08-16 21:00:00"
...
}
}
],
...
}
}
Run Code Online (Sandbox Code Playgroud)
shoot_locations在JSON字段中(在MySQL 5.7.8中可用?)我明白我应该将嵌入数据拆分到自己的表中,并为非关键元数据保存JSON.
存储非重复嵌入数据的最佳选择是什么?
在我的EmberJS应用程序中,我有一个当前的用户初始化程序,它将用户注入所有控制器,路由和视图.它在登录时效果很好.我需要同步加载当前用户对象,这样我就可以立即检查一些用户权限.
这是我的初始化程序:
App.CurrentUserInitializer - Ember.Initializer.extent({
name: 'current-user',
after: 'authentication',
initialize: function(container, app) {
var store = container.lookup('store:main');
app.deferReadiness();
store.find('user', 'me').then(function (user) {
app.register('session:user', user, {instantiate: false});
_.forEach(['route', 'controller', 'view'], function (place) {
app.inject(place, 'currentUser', 'session:user');
});
app.advanceReadiness();
}).catch(function () {
app.advanceReadiness();
});
}
});
Run Code Online (Sandbox Code Playgroud)
这对我来说是崩溃的,是在登录期间.应用程序启动时,将运行初始化程序,但/users/me路径返回401错误.如果我没有捕获错误和advanceReadiness,则启动暂停.通过捕获错误,应用程序启动,但登录后初始化程序不会再次运行,因此不会加载当前用户.
我有什么选择?我不能使用@ marcoow推荐的向Session添加计算属性的方法,因为我需要在启动时加载用户.
我已经尝试强制将IndexRoute上的用户对象加载为hack,但这似乎不起作用.
任何提示都表示赞赏.
我已经使用jQuery .post()函数编写了一个表单,将数据发布到php文件中.我一直得到的错误是"缺少:属性ID之后".任何帮助,将不胜感激.
这是表单代码:
<form id="ev-form" name="ev-form" action="/new_event_submit.php" method="post">
<fieldset>
<ol>
<li>
<label for="ev-name">Event</label>
<input type="text" id="ev-name" name="ev-name" class="text" />
</li>
<li>
<label for="ev-date">Date & Time</label>
<input type="text" id="ev-date" name="ev-date" class="text" />
</li>
<li>
<label for="ev-desc">Description</label>
<textarea id="ev-desc" name="ev-desc" cols="" rows="" class="textarea"></textarea>
</li>
<li>
<input type="submit" id="ev-submit" value="Submit Event" class="submit" />
</li>
</ol>
</fieldset>
<div id="load-icon"></div>
</form>
Run Code Online (Sandbox Code Playgroud)
javascript .post()函数如下:
$j(document).ready(function(){
//Setup on the click event
$j('#ev-form input.submit').click(function(){
//Setup some variable with needed values
var input_name = $j('input:eq(0)').val(),
input_date = $j('input:eq(1)').val(),
input_desc …Run Code Online (Sandbox Code Playgroud)