シナリオ:2つのテーブルがあります。表1にはユーザーが、表2には趣味が含まれています ユーザーは複数の趣味(20-40)を持つことができます。ユーザー数は100,000を超えています。カンマ区切りの値とデータの処理と処理に基づいてSQL Serverにデータを格納するための複数行アプローチ
アプローチ1.ユーザーIDとして列1、趣味として列2を持つUsersHobby表を作成し、趣味をカンマ区切り値として格納します。行数が減ります。たとえば、100kユーザーがおり、それぞれに少なくとも20の趣味がありますが、まだ行数は100kになります。しかし、それは正規化原則に違反している。
アプローチ2。ユーザーIDとして列1、趣味として列2を選択し、各趣味ごとに新しい行を格納します。この場合、100,000人のユーザーがいる場合、行の総数は200万になりますが、正規化の原則に従います。
パフォーマンスとデータの扱いやすさを考慮すると、どちらが良いアプローチですか?
アプローチ2が良いでしょう。私はあなたが詳細については、このリンクを参照する必要がありますと考えていますhttp://stackoverflow.com/a/39724908/7967350his – Saveen
***単一のセルに複数の値を格納することは絶対に***!期間。これは**基本的な**リレーショナルデザインの原則に反するものであり、長期的には無限の悲しみやトラブルを引き起こします。あなたは間違いなく、3つの通常のリレーショナルデザインに固執する必要があります。そして、複数の値を1つのセルに入れることは、最初の通常のフォームに既に違反しています。** –
@marc_s容認しますが、のデータ。 –