我们的软件目前运行在MySQL上。 所有租户的数据存储在同一个模式中。 由于我们使用Ruby on Rails,所以我们可以很容易地确定哪些数据属于哪个租户。 但是,有些公司当然担心他们的数据可能会受到影响,所以我们正在评估其他解决scheme。 到目前为止,我看到了三个select: 多数据库(每个租户都有自己的 – 每个客户的服务器几乎相同) 多模式(在MySQL中不可用,每个租户都在共享数据库中获取自己的模式) 共享模式(我们目前的方法,也许每个列都有额外的识别logging) 多架构是我最喜欢的(考虑成本)。 然而,创build一个新帐户并进行迁移似乎是相当痛苦的,因为我将不得不迭代所有模式并更改它们的表/列/定义。 问:多架构似乎被devise为每个租户有略微不同的表 – 我不想这样。 是否有任何RDBMS允许我使用多模式多租户解决scheme,其中表结构在所有租户之间共享? PS多我的意思是像超多(10.000 +租户)的东西。
有一列只有一张桌子可以吗? 我知道这在技术上不是非法的,但它被认为是糟糕的devise? 编辑: 这里有一些例子: 你有一个有50个有效的美国州代码的表,但是你不需要存储详细的状态名称。 电子邮件黑名单。 有人提到添加一个关键字段。 我看到的方式,这个单列将是主要的关键。
背景 我被分配到创build一个UI,其行为类似于Google地图显示search结果的底部表单。 它有三个不同的阶段: 底部内容。 上部区域仍然是可触摸的,不会在底部滚动任何东西 全屏幕的内容,而上面的区域有一个大头。 全屏幕的内容,而上面的区域只有工具栏。 以下是我在Google地图上讨论的内容: 问题 事情是,底部表不是devise图书馆的一部分(虽然这是要求, 在这里 )。 不仅如此,UI看起来相当复杂,需要在多个阶段处理工具栏。 我试过了 我已经find了一个好的(足够的)底部图纸库( 在这里 ),并添加了内容到它的片段样本,与材料devise样本(如这里 )上显示的大致相同的视图,有一个CollapsingToolbarLayout将小心阶段2 + 3。 在我制作的应用程序中,我也必须在滚动时移动一个图标,但是我认为如果我能够成功完成其他任务,这应该很简单。 代码如下: fragment_my.xml <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout android:id="@+id/main_content" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="@dimen/detail_backdrop_height" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" app:layout_collapseMode="parallax"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" […]
我不认为我是唯一一个想知道这个的人。 你通常对数据库行为做什么? 你喜欢从物理数据库中删除一条logging吗? 或者只是用“已删除”标志或布尔列标记logging来表示logging处于活动状态还是非活动状态?
我在没有expression式混合的情况下工作,只是在vs2010中使用XAML编辑器。 除此之外,我越来越看到devise时数据绑定的需要。 对于简单的情况, FallbackValue属性工作得非常好(Textboxes和TextBlocks等)。 但是特别是在处理ItemsControl之类的时候,真的需要样本数据在devise器中可见,这样您就可以在无需运行可执行文件的情况下调整和调整控件和数据模板。 我知道ObjectDataProvider允许绑定到一个types,因此可以提供可视化的devise时数据,但是有一些杂耍,允许真正的运行时数据绑定,而不浪费资源,通过加载加载两个devise时间,虚假的数据和运行时绑定。 真的,我想要的是在XAMLdevise器中有“约翰”,“保罗”,“乔治”和“林戈”这样的能力,在我的ItemsControl显示为可样式化的项目,但是当应用程序运行 我也知道Blend允许一些特殊的属性来定义WPF在运行时条件下有效忽略的devise时绑定数据。 所以我的问题是: 1.我该如何利用Visual Studio XAMLdevise器中的集合和非平凡数据的devise时绑定,然后顺利地交换到运行时绑定? 2.其他人如何解决这个devise时间与运行时数据问题? 在我的情况下,我不能很容易地使用相同的数据(因为可以用数据库查询)。 3.他们是否可以用于数据集成XAMLdevise的expression式混合? (我知道有一些select,但我特别想要的东西,我可以使用,看到绑定的样本数据等?)
在Objective-C中,不能声明最后一个组件不带参数的方法名称。 例如,以下是非法的。 -(void)take:(id)theMoney andRun; -(void)take:(id)yourMedicine andDontComplain; Objective-C为什么这样devise? 这仅仅是一个Smalltalk的人造产品,没有人看到需要摆脱? 这个限制在Smalltalk中是有意义的,因为Smalltalk没有围绕消息调用的分隔符,所以最终的组件将被解释为最后一个参数的一元消息。 例如, BillyAndBobby take:'$100' andRun将被parsing为BillyAndBobby take:('$100' andRun) 。 Objective-C中的方括号是必需的。 支持无参数的select器组件不会在所有测量语言的通常方式中获得很多,因为程序员select的方法名称(例如runWith:而不是take:andRun )不会影响程序的function语义,也不会影响程序的function语义语言的performance力。 事实上,一个带有无参数组件的程序是alpha相当于一个没有。 因此,我对那些没有必要声明这样一个特性的答案并不感兴趣(除非Objective-Cdevise者声明的原因,是否有人知道Brad Cox或Tom Love?他们在这里?)或者说如何编写方法名称,以便不需要该function。 主要的好处是可读性和可写性(就像可读性,只有…你知道),因为这意味着你可以写出更接近自然语言句子的方法名称。 -(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication*)theApplication Matt Gallagher 在“Cocoa With Love”中指出有点混乱,当你放弃正式参数时)可以被命名为-(BOOL)application:(NSApplication*)theApplication shouldTerminateAfterLastWindowClosed ,从而将参数紧靠在适当的名词旁边。 苹果的Objective-C运行时(例如)完全能够处理这些types的select器,为什么不编译器? 为什么不在方法名称中支持它们呢? #import <Foundation/Foundation.h> #import <objc/runtime.h> @interface Potrzebie : NSObject -(void)take:(id)thing; @end @implementation Potrzebie +(void)initialize { SEL take_andRun = NSSelectorFromString(@"take:andRun"); IMP take_ = […]
我们都知道(或者应该知道)Haskell默认是懒惰的。 评估之前,没有任何评估。 那么什么时候必须进行评估? 有几点Haskell必须严格。 我称之为“严格点”,虽然这个特定的术语并不像我想象的那样广泛。 据我所知: Haskell中的减less(或评估) 只发生在严格点上。 所以问题是: Haskell的严格性究竟是什么? 我的直觉说main seq / bang模式,模式匹配,以及通过main执行的任何IO动作都是主要的严格点,但是我不知道为什么我知道这一点。 (另外,如果他们不被称为“严格点”,他们叫什么?) 我想象一个好的答案将包括一些关于WHNF的讨论等等。 我也想象它可能会触及lambda演算。 编辑:关于这个问题的其他想法。 正如我在这个问题上所反映的那样,我认为在严格点的定义中增加一些内容会更清楚些。 严格点可以有不同的背景和不同的深度 (或严格性)。 回到我的定义:“减lessHaskell只发生在严格点上”,让我们在这个定义中增加这样一个条款:“一个严格点只有当它的周围环境被评估或减less时才会触发”。 所以,让我试着让你开始我想要的答案。 main是一个严格点。 它被特别指定为其上下文的主要严格点:程序。 当程序( main的上下文)被评估时,main的严格点被激活。 主要的深度是最大的:它必须充分评估。 主要通常由IO操作组成,这些操作也是严格点,其上下文是main 。 现在您尝试:以这些术语讨论seq和模式匹配。 解释function应用的细微差别:它是如何严格的? 它怎么样? 那么deepseq呢? let和case陈述? unsafePerformIO ? Debug.Trace ? 顶级定义? 严格的数据types? 爆炸模式? 等等这些项目中有多less可以用seq或模式匹配来描述?
为了好玩,我试图把我儿子最喜欢的一款棋盘游戏写成一个软件。 最终,我期望在其上构build一个WPF UI,但是现在我正在构build模拟游戏及其规则的机器。 当我这样做的时候,我一直看到许多棋盘游戏常见的问题,也许其他人已经比我更好地解决了这些问题。 (请注意,AI玩游戏,高性能模式对我来说并不有趣。) 到目前为止,我的模式是: 在游戏框中代表实体的几个不可变types,例如骰子,跳棋,卡片,棋盘,棋盘上的空格,金钱等 每个玩家的对象,包含玩家资源(例如金钱,分数),他们的名字等等。 一个代表游戏状态的对象:玩家,轮到谁,棋盘上的peices的布局等等。 pipe理转弯顺序的状态机。 例如,很多游戏都有一个小游戏,每个玩家都会先看看谁先走; 这是开始状态。 当一个玩家轮到他们时,他们先滚动,然后他们移动,然后他们必须跳起来,然后其他玩家猜测他们是什么品种的鸡,然后他们得到分数。 有一些我可以利用的现有技术吗? 编辑:我最近意识到的一件事是游戏状态可以分为两类: 游戏神器状态 。 “我有$ 10”或“我的左手是蓝色的”。 游戏顺序状态 。 “我打了两次双打,下一次把我关进监狱”。 状态机可能在这里有意义。 编辑:我真正在这里寻找的是实现多人回合制游戏如国际象棋或拼字游戏或垄断的最佳方式。 我相信我可以通过开始完成这个游戏来创build这样一个游戏,但是像其他的devise模式一样,可能有一些方法可以让事情变得更加顺利,没有经过仔细的研究就不是很明显。 这就是我所希望的。
我正在玩Material-UI 。 有没有创build网格布局的任何选项(如在Bootstrap中 )? 如果不是,那么添加这个function的方法是什么? 有一个GridList组件,但我想它有一些不同的目的。
我试图阅读dofactory,维基百科和许多网站上的许多文章。 我不知道桥梁模式和战略模式之间的差异。 我知道他们都将抽象从其实现中分离出来,并且可以在运行时改变实现。 但是我仍然不知道在哪种情况下我应该使用策略,或者在哪种情况下我应该使用桥接。