0 レビュー
58 回答
php-mysqlテーブルを作成するためのより良い方法はどれですか?
<脇>
答えへのリンク
---- +
答えへのリンク
---- + |||(disease_id、sympact_id)||| DISEASES.id ||| DISEASES_SYMTPOMS.disease_id ||| SYMTPOMS.id ||| DISEASES_SYMTPOMS.symptom_id ||| DISEASES ||| SYNPTOMS ||| JOIN | || SELECT
やりました、
d.name、
s.name
dとしての病気から
d.id=ds.disease_idのdsとしての内部結合疾患_症状
ds.symptom_id = s.id; ||| +------+のsとしての内部結合症状
答えへのリンク
答えへのリンク
答えへのリンク
閉鎖。この質問は意見に基づくです。現在、回答を受け付けていません。
わからない
0
レビュー
答え :
解決策:
2つの方法のうち、方法2が推奨されます。 @JNevill が指摘しているように、1つの列に複数のデータを保存することは、データを検索またはフィルタリングするときに悪夢になります。
ただし、オプション3を使用することを強くお勧めします。以下のデザインをご覧ください:
表1: {-code-11}
主キー:
{-code-2}
表2: {-code-12}
+ ------ +
わからない
0
レビュー
答え :
主キー:
(disease _ {-code-2}、sympant _ {-code-2})
外部キー:
{-code-11}。{-code-2}
->{-code-11} _SYMTPOMS.disease _ {-code-2}
>SYMTPOMS。{-code-2}
->{-code-11} _SYMTPOMS.symptom _ {-code-2}
ベーステーブル
{-code-11}
と{-code-12}
を確立します。次に、最初の2つのテーブルの{-code-13}
を表す3番目のrdテーブルを確立します。このデータの正規化は、アプリケーションの構造を単純化し、各疾患に複数の症状があり、各症状が複数の疾患に属する可能性があるため、データの重複を防ぎます。サンプルクエリ(MySQL):
SELECT d。{-code-2}、 d.name、 s.name FROM {-code-11} as d INNER {-code-13} {-code-11} _ {-code-12} AS dsONd。{-code-2}=ds.disease _ {-code-2} INNER {-code-13} {-code-12} AS s ON ds.symptom _ {-code-2}=s。{-code-2};
サンプルクエリの結果:
+ ------ +
わからない
0
レビュー
答え :
わからない
0
レビュー
答え :
解決策:
データベースをどの程度正規化するかによって異なります。より正規化されたアプローチは、すべての症状を格納する症状テーブル、すべての疾患を格納する疾患テーブル、およびおそらくdisease_idとsympact_idによって疾患を症状にリンクする別のテーブルを作成することです。また、正規化されていないアプローチは、すべての症状を区切り文字で区切られたテーブルのフィールドとして含めるか、配列をサポートするデータベースを使用している場合は配列に入れる方法1のようなものです。
わからない
0
レビュー
答え :
解決策:
disease
と{-code-3の2つの
。次に、3番目のテーブルを作成します。master tables
を作成します} disease _symptom
には2つの外部キー列を含めます。 -6}および対応するマスターテーブルを参照
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。