我的数据库有两个表,一个包含用户列表,另一个包含角色列表.每个用户都属于一个或多个角色,当然每个角色中都有多个用户.
我有两种方法来链接信息.第一种是添加第三个表,其中包含两个表中的ID.然后,简单连接将返回属于角色的所有用户或用户所属的所有角色.但是,随着数据库的增长,这些简单查询返回的数据集将呈指数级增长.
第二种方法是向users表添加一列,其中存储了分隔的角色列表.这将消除对第三个链接表的需要,这可能对数据库增长产生积极影响.缺点是SQL无法使用分隔列表.我发现处理该信息的唯一方法是使用临时表和自定义函数.
正在查看我的执行计划,"表扫描"事件是占用最多资源的事件.从等式中消除一个表会加快速度,这是有道理的.该功能占用的资源不到1%.
这些测试是在少于20条记录的数据库上完成的.随着数据库大小的增长,表扫描将花费更长时间,因此限制它们可能是最佳选择.
如果使用分隔列表是一个很好的方法,为什么没有人这样做?
请告诉我哪个是你喜欢的方法(即使它与我的两个不同)以及为什么.
谢谢.
因为.NET是c#的框架,所以有任何java框架吗?我的意思是每当人们谈论c#时,.NET都会参与讨论,但是在java的情况下,我没有找到这样的.
我现在正在使用django-haystack和apache-solr作为后端.
问题是我无法让应用程序执行我正在寻找的搜索功能
搜索单词中的子部分
例如.搜索"buntu"不会给我"ubuntu"
寻找类似的单词
例如.搜索"ubantu"会给"ubuntu"
任何帮助将非常感谢.
我需要一些Ints作为随机数生成的种子,所以我想使用系统时间作为种子的旧技巧.
所以我尝试使用Data.Time包,我设法做了以下事情:
import Data.Time.Clock
time = getCurrentTime >>= return . utctDayTime
Run Code Online (Sandbox Code Playgroud)
当我运行时,我会得到以下内容:
Prelude Data.Time.Clock> time
55712.00536s
Run Code Online (Sandbox Code Playgroud)
类型time是IO DiffTime.我希望看到一个IO Something类型,因为这取决于程序外部的东西.所以我有两个问题:
a)是否有可能以某种方式解包IO并获取基础DiffTime值?
b)如何将DiffTime转换为整数值,以秒为单位?有一个功能,secondsToDiffTime但我找不到它的逆.
嗨,谢谢你的阅读.我是编程和C#和套接字编程的新手.在我的代码中,我尝试捕获问题,以便在我的应用程序中提供故障.下列:
catch (ArgumentNullException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
catch (EncoderFallbackException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
catch (SocketException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
catch (ArgumentOutOfRangeException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
catch (ObjectDisposedException e)
{
OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道我是否可以用一个单一替换这个重复的代码:
catch (Exception e) { handle here}
Run Code Online (Sandbox Code Playgroud)
这会有用吗?
再次感谢.
信不信由你,我继续把这个界面整合到我开始的开源库中,Tao.NET.我写了一篇博客文章解释这个库的IArray<T>界面,它不仅解决了我最初在这个问题中提出的问题(一年前?!),而且还提供了协变索引界面,这在BCL中非常缺乏(在我看来).
我问为什么.NET有IList<T>,它实现ICollection<T>,因此提供的方法来修改列表(Add,Remove,等),但不提供任何在两者之间的接口,如IArray<T>提供通过索引没有任何列表修改随机访问.
在以乔恩斯基特原来的答案评论(其中他质疑多久人们就必须需要任何合同,如IArray<T>),我提到Keys和Values该属性SortedList<TKey, TValues>类是IList<TKey>与IList<Value>分别,到乔恩回答说:
但在这种情况下,它被声明为IList,你知道只使用索引器....它并不是非常优雅,我同意 - 但它实际上并没有给我带来任何痛苦.
这是合理的,但我会回答说它不会给你带来任何痛苦,因为你只知道你做不到.但你知道的原因并不是从代码中清楚地看出来; 这是你有经验的SortedList<TKey, TValue>课程.
如果我这样做,Visual Studio不会给我任何警告:
SortedList<string, int> mySortedList = new SortedList<string, int>();
// ...
IList<string> keys = mySortedList.Keys;
keys.Add("newkey");
Run Code Online (Sandbox Code Playgroud)
据说这是合法的IList<string>.但我们都知道,它会导致异常.
纪尧姆也提出了一个恰当的观点:
好吧,接口并不完美,但开发人员可以在调用Add/Remove/Set之前检查IsReadOnly属性...
再次,这是合理的,但是:这不会让你觉得有点迂回吗?
假设我定义了一个接口如下:
public interface ICanWalkAndRun …Run Code Online (Sandbox Code Playgroud) 这是我的情况; 我已经构建了一个非常简单的Web应用程序,可以查找用户位置并将其绘制在Google地图上.这是我的代码:http://pastebin.com/d3a185efd
当我测试它时,我的位置被检测到距离我实际站立的地方> = 500米.
但
当我打开Google地图或Gowalla时,我的位置是否正确到<20米范围内?
所以我的问题是:原生iPhone应用程序的准确率是否高于网络应用程序?
如果是这样,为什么?
:: dostuff.bat
@echo off
:: insert long-running process call here
: End
Run Code Online (Sandbox Code Playgroud)
如果它在执行时已经在另一个进程中运行,我可以添加到此批处理文件中以使其终止?
我需要检查是否存在实例class_A,如果确实存在,则获取该实例.
如何用PHP做到这一点?
一如既往,我认为一个简单的例子是最好的.
现在我的问题变成:
$ins = new class_A();
Run Code Online (Sandbox Code Playgroud)
如何在实例class_A化时将实例存储在静态成员变量中?
如果在调用时可以存储实例会更好__construct().比如,它应该不受限制地实现它的实现方式.
据我所知,INotifyPropertyChanges是在WPF之前"发明的".有人可以解释WPF中的新内容,它允许对对象的属性执行控件的不同类型的绑定属性.
要么这也可以在WinForms中使用,但由于某些原因不是很受欢迎?(如果是的话,那是什么原因)?
谢谢.
.net ×2
c# ×2
batch-file ×1
binding ×1
class ×1
collections ×1
database ×1
django ×1
fuzzy-search ×1
geolocation ×1
google-maps ×1
haskell ×1
ilist ×1
instance ×1
interface ×1
iphone ×1
java ×1
php ×1
python ×1
readonly ×1
solr ×1
sql ×1
systemtime ×1
t-sql ×1
windows ×1
winforms ×1
wpf ×1