我将尽力以最好的方式解释我的情景.我的数据库中有以下表格:
Products{ProductId, CategoryId ...}
Categories{CategoryId ...}
CategoryProperties{CategoryPropertyId, CategoryId, Name ...}
PropertyValues{ProductId, CategoryPropertyId, Value ...}
Run Code Online (Sandbox Code Playgroud)
因此,目标是拥有属于某个类别的产品列表,每个类别可以在"PropertyValues"表中包含具有值的"n"个属性.我有一个基于'categoryId'返回数据的查询,所以我总能从数据库中得到不同的结果:
对于CPU类别:
intel i7 | CPU | Model | Socket | L1 Cash | L2 Cahs | etc.
Run Code Online (Sandbox Code Playgroud)
对于HDD类别:
samsung F3 | HDD | Model | Speed | GB | etc.
Run Code Online (Sandbox Code Playgroud)
因此,根据我的查询中的类别,我总是可以得到不同的列号和名称.对于数据库访问,我使用简单的ADO.NET调用返回结果的存储过程.但是因为查询结果本质上是动态的,所以我不知道读取这些数据的好方法是什么.
我做了一个Product实体,但我很困惑如何使其真正:(
我认为我可以做一个Product实体,使该其他实体继承 Product一样Cpu,Hdd,Camera,PcCase,GraphicCard,MobilePhone,Gps等
,但我认为这是愚蠢的,因为我可以结束这与域中有200多个实体.
在这种情况下你会做什么?
如何阅读和放置这个动态属性?
更新 …
我仍在学习angularjs,我有理解$scope与model对象之间的区别的问题,这目前阻止我组织(使用一些最佳实践)我的应用程序.
据我所知$scope应该只读(看了一些我听到的教程).
因此,当我加载应用程序时,我应该使用service从数据库中获取一些数据并将其存储model.
更新
现在我从服务器获得的所有数据都存储在控制器$ scope中,我正在尝试将其移动到服务并使控制器变为dumber.
我也检查了这篇文章,我试图使用第二个或第三个选项,但仍然无法找到实现它的最佳方法.
这是我的服务和控制器:
function dataService($http) {
var service = {
getToDoList: getToDoList,
getToDoListByType: getToDoListByType,
getToDoById: getToDoById
};
return service;
function getToDoList() { }
function getToDoListByType() { }
function getToDoById() { }
}
function toDoController($location) {
var vm = this;
vm.todos = [];
vm.title = 'toDoController';
activate();
function activate() {
return getToDos().then(function () {
console.log("ToDos loaded");
});
}
function getToDos() {
return dataservice.getToDoList()
.then(function …Run Code Online (Sandbox Code Playgroud) 我想创建一个用于获取用户坐标的函数,但我发现我不确定我的方法是否足够好.
我想知道其他人如何编写这个函数,以便在ios和android上100%确定.
现在我有这样的事情:
function getUserLocation(callback: func) {
Permissions.check('location')
.then(response => {
if (response == 'authorized') {
navigator.geolocation.getCurrentPosition(
(location) => {
callback({
latitude: location.coords.latitude,
longitude: location.coords.longitude
}, response);
},
(error) => {
callback(null);
},
Platform.OS === 'android' ? null : {enableHighAccuracy: true, timeout: 100000, maximumAge: 1000}
);
} else {
callback(null, response);
}
})
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以看到我想使用此函数,因此调用者可以知道是否允许使用位置以及是否获取当前坐标.
我正在尝试的是学习如何:
1.使这样的功能等待.
2.其他人如何使这样的功能(对于两种操作系统)和100%相同的功能.
ecmascript-6 react-native react-native-android react-native-ios
当我们使用MPMoviePlayer(在自定义UIViewController中)创建应用程序并在电影播放器上使用覆盖UIViewController时,有什么更好的方法: - 使用self.view.presentModalView ...或者self.view.addSubView在播放器中加载电影......或者在那里任何其他更好的方式.我现在使用模态视图,一切正常,但我必须实现一些自定义旋转.我正在寻找更明确的方法来做到这一点.
好吧也许更多细节.在iPhone应用程序中,我添加播放器,如模态视图,并添加叠加视图,这是有效的.但这是通用应用程序,它在iPad上的工作方式与在iPhone上的工作方式相同.在ipad splitView中,我的播放器在细节方面(非完全屏幕),当我双击它时它会全屏显示.现在玩家是关键窗口.这是最大的问题.我试图添加叠加视图作为子视图和模态视图,我做了它,但是叠加层不知道设备方向,我必须转换叠加元素,这是我想要避免的.有没有办法检测该视图的旋转?
我有一个Google Maps div和复选框列表,用于过滤地图上的标记.
但是,如果我单击标记,打开一个InfoWindow,然后单击复选框以删除该类型的标记,InfoWindow则不会从地图中删除.
删除标记后,我调用此代码,但InfoWindow保留:
try {
if( infowindow ) {
infowindow.close();
}
}
catch(err) { }
Run Code Online (Sandbox Code Playgroud) javascript google-maps google-maps-api-3 google-maps-markers
我设计了一个数据库来使用GUID作为数据库,UserID但是我将它UserId作为外键添加到许多其他表中,并且由于我打算有大量的数据库输入,因此必须对此进行精心设计。
我还使用ASP成员资格表(不仅概要分析成员资格,用户和角色)。
因此,目前我在每张其他表中都使用GUID作为PK和FK,这可能是错误的设计吗?我认为这可能更好,并且是我问题的出处,是否应该在Users表中添加UserId(int)主键,并将此字段用作其他表的外键,并且用户GUID UserId仅供参考aspnet_membership?
aspnet_membership{UserID(uniqueIdentifier)}
Users{
UserID_FK(uniqueIdentifier) // FK to aspnet_membership table
UserID(int) // primary key in this table --> Should I add this
...
}
In other tables user can create items in tables and I always must add UserId for example:
TableA{TableA_PK(int)..., CreatedBy(uniqueIdentifier)}
TableB{TableB_PK(int)..., CreatedBy(uniqueIdentifier)}
TableC{TableC_PK(int)..., CreatedBy(uniqueIdentifier)}
...
Run Code Online (Sandbox Code Playgroud) 我在新的开发机器上安装了xcode 5.1 - 如何安装旧的配置文件?
现在我的配置文件在我的旧Mac上工作正常 - 我是否需要在旧Mac上禁用它才能在新Mac上使用它?
我试过在设备上运行一个项目,我得到以下内容:
您的帐户已拥有有效证书如果您在其他Mac上拥有签名身份,则可以导入开发者个人资料.您也可以撤消当前证书并再次申请.
我点击了:撤销和请求,但我收到消息:找不到代码签名身份.
我在 react native 中有一个组件:
export default class Screen extends Component {
constructor(props){
super(props);
this.state = {
prop1: false,
prop2: simpleFunc
};
}
simpleFunc = () => { /*...*/ }
componentWillMount() {
BackgroundGeolocation.on('location', this.onLocation);
Run Code Online (Sandbox Code Playgroud)
最后一行是将在新位置调用的回调方法。
从该方法我无法访问this.state或this.simpleFunc().
我应该怎么做才能从回调函数更新状态?
我需要读取一个值,并用它在导航栏中设置标题。
我正在使用react-native-router-flux,我也使用redux。
我导航查看设置语言和触发redux动作的位置。
所有视图都接收新状态,并且可以在render()方法中调用:
console.log(this.props.language.language)
Run Code Online (Sandbox Code Playgroud)
这是通过redux设置的。我想更改导航栏标题,例如:
Actions.refresh({title: I18n.t('main', {locale: this.props.language.language})})
Run Code Online (Sandbox Code Playgroud)
但是,这会使应用程序变慢,并且无法正常工作。
但是,如果不使用render方法,则不知道将其放在何处。
我有应用程序架构问题。
我想用 nextjs 之类的东西制作登陆页面,因为它需要 SEO。
我将制作不需要 SEO 且需要登录的 React 应用程序。
我的想法是用户可以从登陆页面重定向到应用程序登录页面。
但这应该如何托管,甚至这是一个好主意吗?
两者应该托管在不同的域上吗?
javascript ×3
react-native ×3
ecmascript-6 ×2
reactjs ×2
ado.net ×1
angularjs ×1
architecture ×1
c# ×1
database ×1
google-maps ×1
ios ×1
ios4 ×1
ipad ×1
iphone ×1
react-redux ×1
sql-server ×1
web-hosting ×1
xcode ×1
xcode5 ×1