4

200 以上のユニークなビジネス (および成長中) の営業時間を保存する必要があります。営業時間は店舗ごとに異なり、ランチタイムは営業していない店舗もあります。さらに、ある日は午前 8 時に営業し、別の日は午前 9 時に営業する場合があります。私の最初の考えは、これを処理するために MySQL テーブルを構築することでしたが、その後、単一のセルに格納して結果を爆発させることを検討しました。それを爆発させて、私はそれをこのように保管します...

// "8:00-17:00|9:00-18:00|8:30-12:30,13:30-17:30|8:00-17:00|8:00-17:00|8:00-11:00||"

// For Day Data:             Explode "|"
// For Open/Close Data:      Explode "-"
// For Converting to am/pm:  Explode ":"

単一セル ストレージでは、clientData テーブル (既にループ処理済み) から取得されたデータの配列処理です。別の MySQL テーブルを使用して、構築方法に応じて、クライアントごとに 7 ~ 14 行 (最初は 1,400 ~ 2,800 行) を見ています。ある方法は他の方法よりも優れています。これにどのようにアプローチしますか?

ありがとう!

望ましい出力

<div class="businessHours" itemscope itemtype="http://schema.org/LocalBusiness">
    <time itemprop="openingHours" datetime="Mo 8:00-17:00"><strong>Monday:</strong> <span>8:00am-5:00pm</span></time>
    <time itemprop="openingHours" datetime="Tu 9:00-18:00"><strong>Tuesday:</strong> <span>9:00am-6:00pm</span></time>
    <time itemprop="openingHours" datetime="We 8:30-12:30,13:30am-17:30"><strong>Wednesday:</strong> <span>8:30am-12:30pm, 1:30pm-5:30pm</span></time>
    <time itemprop="openingHours" datetime="Th 9:00-18:00"><strong>Thursday:</strong> <span>9:00am-6:00pm</span></time>
    <time itemprop="openingHours" datetime="Fr 8:00-17:00"><strong>Friday:</strong> <span>8:00am-5:00pm</span></time>
    <time itemprop="openingHours" datetime="Sa 8:00-1:00"><strong>Saturday:</strong> <span>8:00am-11am</span></time>
    <time itemprop="openingHours" datetime="Su "><strong>Sunday:</strong> <span>Closed</span></time>
</div>
4

2 に答える 2

2

私は間違いなくテーブルを使用します。次の 2 つの方法で構造化できます。

縦の表:ID、店舗ID、曜日、営業時間

水平テーブル: id,Store ID, M,T,W,TH,F,S,SU

それぞれに長所と短所がありますが、このアプローチに従うと、特定の日のみのすべての店舗の営業時間をすばやく一覧表示できます。それ以外の場合は、各行を解析してその日の位置に展開するか、課税のようなステートメントを使用する必要があります。

于 2013-05-07T15:53:08.360 に答える
1

ここで、一般的な論理に反論します。あなたが言うように、将来のある時点で特定の営業時間データに対してクエリを実行する必要がないと予想される場合は、データのコレクション全体が単にビジネスのプロパティであり、保存できることをお勧めします。このようにシリーズ化。これにより、各ビジネスのデータの書き込みと取得がより最適化されます (多数のテーブルにわたるより複雑なクエリが不要になります)。

データをシリアル化された形式 (おそらく JSON、おそらく PHP のネイティブのシリアル化形式) で保存することもお勧めします。これにより、取得時にデータを単純にシリアル化解除して操作することができます。

さて、営業時間情報を照会する必要があると思われる場合 (つまり、誰が今開いているか、誰が土曜日に開いているかなどの情報を表示するため)、このスレッドに関する他のほとんどのコメント投稿者のアドバイスを受けて、データ。

于 2013-05-07T17:13:38.097 に答える