私は顧客が見積もりを作成できる非常に基本的なアプリケーションを持っている&私は各ユーザーに個別の見積もりID(基本的には非常に単純なマルチテナントアプリ)を持たせる必要がある。例えばAps.Net MVC同じテーブルだが一意のIDをユーザーごと
"USER 1" は、引用符、彼の引用のIDのは1,2,3,4,5,6,7,8..etcする必要があります作成します。..
"USER 2" は引用符を作成します最初の見積もりIDも1,2,3,4,5,6,7,8などとなります。
基本的に、各ユーザーは競合するビジネスですそれで彼らは別々の見積もりIDが必要です。一意の見積もりIDのほかに、引用符の表&は、他のすべての表がすべてのユーザーに対して全く同じになります。
これにはどのような方法が最適でしょうか?ユーザーごとに別々の "引用符"テーブルを作成しますか?そして私はこれをどのようにして行うのですか?私はmvc 5、ef 6のコードを最初に使用しています&私はできるだけシンプルにしておきたい。
私の引用モデルの例を次に示します。
public class Quote
{
[Key]
public int QuoteID { get; set; }
public DateTime QuoteDate { get; set; }
public string ClientsName { get; set; }
//[ForeignKey("ApplicationUsers")]
[Column("OwnerID")]
public string Id { get; set; }
public virtual ApplicationUser ApplicationUsers { get; set; }
}
簡単な解決策:以下のリチャーズの提案を1として
、私はちょうどhttp://hashids.org/net/
// original QuoteID = 120
var userID = User.Identity.GetUserId();
var hashids = new Hashids(userID, 4, "123456789ABCDEFGHIJKLMNPQRSTUVWXYZ");
var hashedID = hashids.Encode(item.QuoteID);
var unhashedID = hashids.Decode(hashedID);
// hashedID = 6DBD
// unhashedID = 120
を使用してハッシュにQuoteID年代を変換していますザ・は誰がどのように多くの引用符を伝えることはできないことを確認します彼らの競争相手は私が必要としていたものすべてを持っています - リチャードは私を再び軌道に乗せてくれたことに感謝します:)
それぞれの事業者は競合他社が行っているクォートの数が分からないように別々のIDでなければなりません。しかし、短いランダムな文字列は実際には素晴らしいアイデアです!なぜ私はそれを考えなかったのか分かりません。私はときには、最も簡単な解決策が見つからないことがあると思う。lol – MWD
私はRichardsソリューションで私の質問を更新しているので、うまくいけば他の人を助けることができる。 – MWD
お手伝いしてうれしい! :) –