質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

解決済

1回答

1666閲覧

DB設計の確認 googlemapAPIを使った位置取得 rails

hiroit

総合スコア1

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

0クリップ

投稿2020/09/16 17:38

出品者テーブルから、住所と商品写真を地図に表示させたい

すみません、初投稿となります。
初めてのオリジナルアプリ作りで、JavaScriptに不慣れながらもGoogleMapAPIに挑戦した結果詰まってしまい、
何かしら知恵をお借り頂ければ幸いです。
今回はgooglemapAPIを使うときのテーブル設計があっているのかについて相談したく思います。

現在オリジナルアプリとして、
企業(Exhibitions)が商品(Items)を出品し、お客さん(customers)が買う(purchases)アプリを作っています。出品された商品はお客さんが購入し、直接お店に取りに行くので、GoogleMapAPIで表示すれば面白いと思い取り入れようとしています。

その際、「商品が出品されたらGoogleMapにお店が表示される。さらにmapのお店をクリックするとmap上に出品した商品の写真や情報が表示される。商品が売れた場合は商品はmapに表示されない。全て売れたらお店も表示されない」ような機能にしたいです。

#####確認したいこと
DB設計の確認

キータを調べると、地図に投稿する時に住所を入力することでマーカーを付けるのはよく見かけます。
ですので、自分はマーカーを使って実装しようかと思うのですが、
他(例Exhibitions)テーブルに住所を持っている例は見当たりませんでした。
その場合、今回だったら商品(Items)テーブルに住所カラムを付けることになるのでしょうか。
自分的には、mapにお店が表示され、クリックすることで商品もmapに出力するようにしたいのですが、、、
やはり変えるべきなのでしょうか。DB設計についてご意見いただければ幸いです。
頑張って初の自分のアプリを完成させてみたいので、どうかお力添えお願いします。

######現在入れているAPI
JavaScript API
Geocoding API

テーブル設計

README

1## customers テーブル 2購入者 お客さん デバイスから作成 3| Column | Type | Options | 4| -------- | ------ | ----------- | 5| nickname | string | null: false | 6| email | string | null: false | 7~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8住所の欄 「prefectures_id」 はactive::hashで47都道府県に指定 9| postal_code | string | null: false | 10| prefectures_id | integer| null: false | 11| city | string | null: false | 12| city_number | string | null: false | 13| building_name | string | | 14| purchase_id | integer| null: false,foreign_key: true | 15 16### Association 17- has_many :items 18- has_many :purchases 19 20 21## items テーブル 22 23| Column | Type | Options | 24| ------ | ------ | ----------- | 25| price | integer | null: false | 26| text | text | null: false | 27| department_id | integer | null: false | 28| item_status_id | integer | null: false | 29| customer_id | integer | foreign_key: true | 30| exhibition_id | integer | not:null,foreign_key: true | 31 32### Association 33- belongs_to :customer 34- has_one_attached :image 35- has_one :purchase 36- belongs_to :exhibition 37 38 39## image テーブル 40| Column | Type | Options | 41| ------ | ---------- | ---------------- | 42| image | text | null: false | 43 44## purchases テーブル 45購入テーブル 取引 46| Column | Type | Options | 47| ------- | ---------- | ------------------------------ | 48|customer_id | integer | null: false,foreign_key: true | 49|items_id | integer | null: false,foreign_key: true | 50 51### Association 52- belongs_to :customer 53- belongs_to :item 54 55## Exhibitionテーブル 56出品者 お店・企業 デバイスから作成 57| Column | Type | Options | 58| -------- | ------ | ----------- | 59| company_name | text | null: false | 60~~~~~~~~~~~~~~~~~~~~~~~~~ 61住所の欄 「prefectures_id」 はactive::hashで47都道府県に指定 62| postal_code | string | null: false | 63| prefectures_id | integer| null: false | 64| city | string | null: false | 65| city_number | string | null: false | 66| building_name | string | | 67 68### Association 69- has_many :items

補足情報(FW/ツールのバージョンなど)

ruby 2.6.5
Rails 6.0.3.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Exhibitions に持たせれるので良いと思いますが、なにが問題なのでしょうか?
「商品が出品されたらGoogleMapにお店が表示される」
「商品が出品されたら 商品に紐付いてるお店が決まるから、GoogleMapに その お店が表示される」ってことですよね?

投稿2020/09/16 20:46

winterboum

総合スコア23284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiroit

2020/09/17 02:41

ご回答ありがとうございます! >>「商品が出品されたらGoogleMapにお店が表示される」 「商品が出品されたら 商品に紐付いてるお店が決まるから、GoogleMapに その お店が表示される」 ハイ!そちらのご認識で間違いございません。 そうですよね!アソシエーション組んでますから、Exhibitionsの住所を呼び出せばいい話ですよね。 不安になってしまい初歩的な質問をしてしまいました。ご回答ありがとうございます!
hiroit

2020/09/17 03:51 編集

追記 そうなるともしjsファイルで作るとしたら、varでお店の住所を指定 Exhibitionsの住所を記述してもらうカラム 「prefectures_id.name」と「city」と「city_number」と「building_name」 を合わせた変数を定義してあげて、経度緯度を割り出す。 foreach文でマーカーを自動生成する際に、商品にその住所を指定してあげるイメージでいいのでしょうか?
winterboum

2020/09/17 08:15

ちとイメージが湧きません。実際に書いてみて。。。 htmlでやるのとの分担が見えてこないので。
hiroit

2020/09/17 14:26

ご返信ありがとうございます! すみません????スマホからの返信となります 現在家のwifiが故障してしまい、コードの方の返信遅れます。相談に乗っていただいているのに本当に申し訳ございません????‍♂️
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問