私はキャンプサイトをデータベースリストに持っています 名前、座標、住所などのユニークなデータを含むメインテーブルtblSitesがあり、トイレ、これらは=はい、ヌル=何 これが含まれている別の関連テーブルtblLocationsがあり、水= 1とトイレ= 1データベースデザイン - JSONを使用して情報を保存
tblSites FROM
SELECT IDのようなものでちょうど1検索されないであろうが、電気など場所タイプ(すなわち、海、田舎、山、川などの近く) これは、テーブルには多くの列があり、f新しいカテゴリを追加したい場合は簡単に更新できます。 これはM.ID = L.ID WHERE M.water = 1、L.river ON L AS tblLocationのJOIN M LEFT AS tblSites FROMこの
SELECT M.id、L. *などの検索に含まれることになります= 1
私が検討しているのは、列を追加することです。たとえば、施設の番号が数字のキーとしてjson文字列を含むようにします。[1,3,4,12]数字のそれぞれは利用可能な施設を表し、別の列[1,3,5]
これは、余分な列を追加せずにテーブルサイズを減らし、施設や場所を追加することを可能にしますが、それはパフォーマンス上の賢明なアイデアですか?検索すなわち
は今( '%1、%' AND LIKE施設 '%4、%' AND '%1、%' LIKE場所LIKE施設)
tblSites FROMSELECT IDのようなものになるだろう
フィールドに配列文字列のキー番号が含まれているかどうかを調べるのに使用できるより良いクエリはありますか?
JSON型の列を 'where'条件[このドキュメントを参照](https://dev.mysql.com/doc/refman/5.7/ja/json-search-functions.html)で使用して' JSON_CONTAINS' @lifeson – MohaMad
あなたは悪い状況をさらに悪化させています。 1対多のリレーションを適切な1対多のリレーションとしてモデル化します。列を分割したり、JSON文字列を含めることはできません。 –