我想知道对于多对多关系的交叉表有什么更好的设计.
我正在考虑的两种方法是:
CREATE TABLE SomeIntersection
(
IntersectionId UNIQUEIDENTIFIER PRIMARY KEY,
TableAId UNIQUEIDENTIFIER REFERENCES TableA NOT NULL,
TableBId UNIQUEIDENTIFIER REFERENCES TableB NOT NULL,
CONSTRAINT IX_Intersection UNIQUE(TableAId, TableBId )
)
Run Code Online (Sandbox Code Playgroud)
要么
CREATE TABLE SomeIntersection
(
TableAId UNIQUEIDENTIFIER REFERENCES TableA NOT NULL,
TableBId UNIQUEIDENTIFIER REFERENCES TableB NOT NULL,
PRIMARY KEY(TableAId, TableBId )
)
Run Code Online (Sandbox Code Playgroud)
一个人对另一个人有好处吗?
编辑2:****请注意:我计划使用Entity Framework为数据库提供API.考虑到这一点,一个解决方案在EF中的效果是否优于另一个?
编辑:在相关的说明中,对于两列引用同一个表的交集表(下面的示例),是否有办法使两个字段在记录上不同?
CREATE TABLE SomeIntersection
(
ParentRecord INT REFERENCES TableA NOT NULL,
ChildRecord INT REFERENCES TableA NOT NULL,
PRIMARY KEY(TableAId, TableBId )
)
Run Code Online (Sandbox Code Playgroud)
我想阻止以下情况
ParentRecord ChildRecord …
Run Code Online (Sandbox Code Playgroud) 获取签署ClickOnce程序集的证书的过程是什么?
我公司有一些ClickOnce应用程序,但它们都是用Visual Studio创建的临时证书签名的.这些显然不是受信任的根权威机构或受信任的出版商.我已经按照文章配置ClickOnce Trusted Publishers,我喜欢使用既是Trusted Root Authority又是Trusted Publisher(即没有提示,只是安装)的证书签名的经验.
http://apps.mycompany.com/
并且我想稍后更改,例如http://www.mycompany.com/apps
或者http://apps.mysubcompany.com
,我是否必须获得另一个证书?在ClickOnce应用程序中设置公司名称和应用程序名称的正确方法是什么?
我在一个名为RecordNavigator的解决方案中有一组项目.GUI项目名为RecordNavigator.Gui.
当我发布应用程序时 - 我希望"开始"菜单中有一个名为Tyndall Software的文件夹,应用程序快捷方式称为" 记录导航器".
现在该文件夹显示组织和快捷方式RecordNavigator.Gui.AssemblyInfo.cs文件似乎没有任何效果.这是正常的吗?
我最近注意到我们有很多表存储在堆中(没有聚集索引).您是否会有选择地,全面地或根本不创建聚簇索引?还有其他智慧或建议吗?
有一些"代码"表有25行左右.但是,有几个行超过一百万行.
编辑 "大表",所有这些都已经有索引,只是没有聚类.一些是日志表,他们只是插入,几乎没有阅读.有一些是非常重要的,大多数只是插入,然后由应用程序读取很多次.
编辑 所有表格都有PK,我很少兴趣,它们主要只插入一次,但多次读取显示屏幕.
在其中一些表中,它们一次插入一个块或相关行中,并且在没有更新的情况下多次读取,或者组被完全删除,然后再次作为块重新插入.它们通常在某个块中读取以显示或进行计算.
在这些表的另一个"类型"中,行重复地插入相关行的组中,不同的组一直插入.在屏幕显示上,需要返回完整的组.例如,随着时间的推移插入这些行组(其中一组可以是5-50行):
1:00pm A1, B1, C1,
1:30pm A2, B2, C2,
2:00pm A3, B3, C3, D1
2:30pm A4, C4, D2
3:00pm C5, D3, E1
3:30pm D4, E2
Run Code Online (Sandbox Code Playgroud)
屏幕需要显示完整的A:A1 + A2 + A3 + A4
编辑 基于@gbn回答关于碎片的回答,我使用了来自 marc_s的这个查询,并发现以下碎片信息为堆表有百万+行,并且被多次读取并被屏幕使用:
TableName index_type alloc_unit_type index_depth index_level avg_fragmentation_in_percent fragment_count avg_fragment_size_in_pages page_count avg_page_space_used_in_percent record_count ghost_record_count Version_ghost_record_count min_record_size_in_bytes max_record_size_in_bytes avg_record_size_in_bytes forwarded_record_count
--------- ---------- --------------- ----------- ----------- ---------------------------- -------------- -------------------------- ---------- ------------------------------ ------------ ------------------ -------------------------- ------------------------ ------------------------ ------------------------ ----------------------
TABLE_A …
Run Code Online (Sandbox Code Playgroud) 我需要创建一个类似于下面的屏幕.我能想到的唯一方法是将UIScrollView作为父视图.然后为缩略图和主文本("All3Sports")提供UIImageView和UILabels.
对于像电话号码和主页这样的部分,我认为我可以拥有一个UITableView并且根据它的内容不能直接滚动和"增长".我无法弄清楚如何做到这一点.我可以将其设置为不滚动,但内容会被剪切.如果我将其设置为不剪辑,则滚动视图仍然认为它的尺寸较小,并且不会滚动内容.
如果有更好的方法来重现这个屏幕,我愿意接受想法.
提前致谢.
嘿伙计.我正在努力使用与"单页/页面范围"文本框中的输入匹配的正则表达式,这意味着用户可以以[lowerBound] - [upperBound]格式输入单个整数或整数范围.例如:
一个正则表达式可以实现吗?
奖金
提前致谢.
例如,我有一个这样的文件名 - проба.xml,我无法从PHP脚本打开它.
如果我将php脚本设置为utf-8,那么脚本中的所有文本都是utf-8,因此当我将其传递给file_get_contents时:
$fname = "?????.xml";
file_get_contents($fname);
Run Code Online (Sandbox Code Playgroud)
我得到文件不存在的错误.原因是在Windows(XP)中,所有带有非拉丁字符的文件名都是unicode(UTF-16).好的,所以我试过这个:
$fname = "?????.xml";
$res = mb_convert_encoding($fname,'UTF-8','UTF-16');
file_get_contents($res);
Run Code Online (Sandbox Code Playgroud)
但是错误仍然存在,因为file_get_contents无法接受unicode字符串...
有什么建议?
我想知道如何在MVVM模式中使用View Models进行继承.在我的应用程序中,我有一个类似于以下内容的数据模型:
class CustomObject
{
public string Title { get; set; }
}
class CustomItem : CustomObject
{
public string Description { get; set; }
}
class CustomProduct : CustomItem
{
public double Price { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我有一个ViewModelBase类,然后将有以下View Models:
CustomObjectViewModel的粗略实现类似于以下内容:
class CustomObjectViewModel : ViewModelBase
{
private readonly CustomObject _customObject;
public CustomObjectViewModel( CustomObject customObject )
{
_customObject = customObject;
}
public string Title
{
// implementation excluded for brevity
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说似乎合乎逻辑的是,我的视图模型将以与我的模型相同的方式扩展自己(CustomItemViewModel扩展CustomObjectViewModel等等).但是,我注意到,当我继承继承树时,我将添加对同一对象的其他引用.这对我来说似乎相当过分,并且想知道如何处理这个问题以及是否有可能使它更清洁.
我需要知道我的函数运行在哪个线程的上下文中,是主GUI线程还是某个工作线程.
我不能使用一个简单的解决方案将QThread指针存储在main函数中并将其与QThread :: currentThread()进行比较,因为我正在编写一个库而我无法访问main函数.我当然可以创建InitMyLibary()函数并要求库用户在GUI线程的上下文中调用它,但我真的反对这一点.
如何使用timeval表示10毫秒?
这是我到目前为止:
struct timeval now;
now.tv_usec =10000;
Run Code Online (Sandbox Code Playgroud) c# ×2
clickonce ×2
.net ×1
c ×1
c++ ×1
cocoa-touch ×1
code-signing ×1
deployment ×1
iphone ×1
mvvm ×1
objective-c ×1
performance ×1
php ×1
qt ×1
regex ×1
smartclient ×1
sql ×1
sql-server ×1
string ×1
t-sql ×1
uiscrollview ×1
uitableview ×1
unicode ×1
unix ×1
wpf ×1