0

私のチームと私は、世界中の複数の企業で使用される SaaS 製品を構築しています。簡単に言えば、当社のソフトウェアはそれらに対していくつかの基本的な会計処理を行い、ドキュメントの更新が必要な場合に警告を発します。

問題は、インドではそのような企業ごとにそのような文書が 3 つしかない可能性があることですが、スリランカでは 4 つ、シンガポールでは 7 つです。また、各フィールドの名前は異なる場合があります。たとえば、3 つのフィールドは、インドでは「Drivers' License」、「Insurance」、「Permit」と呼ばれますが、シンガポールでは「XYZ」、「XXYZ」、「XZY」と呼ばれることがあります。

MySQL を使用してそのような機能を実装するための最良かつ最も効果的な方法は何ですか? このような列の数を 5 に制限できるとしましょう。また、このプロジェクトでは NoSQL を使用したくありません。

CodeIgniter で実行されている PHP を使用しており、Engineyard にデプロイする予定です。

4

2 に答える 2

0
CREATE TABLE Countries (
  CountryCode CHAR(2) PRIMARY KEY,
  CountryName VARCHAR(255),
);

CREATE TABLE Companies (
  CompanyID   SERIAL,
  CountryCode CHAR(2) REFERENCES Countries (CountryCode),
  -- etc.
);

CREATE TABLE Documents (
  CountryCode  CHAR(2) REFERENCES Countries (CountryCode),
  DocumentID   INT UNSIGNED,
  DocumentName VARCHAR(255),
  -- etc.
  PRIMARY KEY (CountryCode, DocumentID)
);

CREATE TABLE CompanyDocuments (
  CompanyID   BIGINT UNSIGNED REFERENCES Companies (DocumentID),
  CountryCode CHAR(2)         REFERENCES Countries (CountryCode),
  DocumentID  INT    UNSIGNED,
  Expiry      DATE,
  PRIMARY KEY (CompanyID, DocumentID),
  FOREIGN KEY (CountryCode, DocumentID) REFERENCES
    Documents (CountryCode, DocumentID)
);
于 2013-05-01T07:27:52.787 に答える