Во-первых, этот сайт основан на гостях, которые заинтересованы в продаже своих товаров владельцу сайта, поэтому это не аукцион, как Ebay.
Посетители в основном будут вводить детали элемента (технологического гаджета), которые они хотели бы продать, включая условие, получают цитату о том, сколько стоит элемент, а затем заполнять адресную информацию, чтобы владелец отправил им коробку /label, чтобы они могли отправить свой товар владельцу. Если владелец удовлетворяет условию, посетитель получает оплату либо чеком, либо Paypal.
Итак, для этого мне нужно будет иметь какой-то orders
(или это более семантически правильно назвать его транзакцией или чем-то еще?), в которой я отслеживаю каждый "заказ", который клиент делает.
Выбранные элементы предварительно выбраны, поэтому есть только несколько конкретных моделей/производителей, поэтому я собирался сделать таблицу items
вместе с производителями и заполнить ее так:
таблица элементов:
item_id item_name manufacturer item_category_type
1 iPhone 32gb 3GS 1 1
2 Sidekick 3 2 1
Таблица производителей:
id manufacturer_name
1 Apple
2 T-Mobile
Существует также несколько типов элементов, категорий товаров:
item_categories:
id item_category
1 phone
2 ipod
3 computer (pc,laptop)
заказов:
id user_id item_id estimated_price ac_adapter battery manuals cables
1 5 2 250 1 1 1 1
пользователей:
id user_email user_address user_city user_state user_zip user_country
1 [email protected] 302 Kingston Ave Manhattan New York 11111 United States
Цена будет генерироваться на основе условий, например, например, есть ли в телефоне адаптер переменного тока, аккумулятор, руководство, кабели, я указал их в таблице orders
, но я не совсем уверен, должен ли я даже сохраните это в таблице.
Вопрос 1: Является ли способ хранения столбца ac_adapter, battery, manuals в таблице заказов правильным способом? Я был бы признателен за любые советы.
На сайте также будет область администрирования, где администратор может просматривать все заказы, и будет пользовательская область, в которой пользователь может просмотреть свои заказы, кроме того, запрос будет содержать и электронные письма, хранящиеся там.
Итак, после того, как пользователь сделает "заказ", мне придется добавить запись в таблицу users
, если пользователь еще не зарегистрирован, и добавить запись в таблицу orders
, а также отправить по электронной почте пользователь копирует это и отправляет по электронной почте владельцу сайта копию информации о заказе. И следующая часть, которую я смущаю, храня электронные письма - это так же просто, как просто создать таблицу электронных писем и, возможно, вторую таблицу, связанную с транзакциями заказов с электронными письмами? И просто отправляйте email_body как владельцу сайта, так и пользователю? Вот схема, о которой я думаю:
электронная почта:
id order_number email_title email_body ( TEXT column? )
1 1 sitename.com - Order #1 ( stuff )
Вопрос № 2. И для тела электронной почты, как я бы сгенерировал это, присоединяем все столбцы, продиктованные номером заказа, и просто сделайте таблицу HTML из всего этого, включите дата.. это обычно, как делается сохранение электронной почты в базах данных?
Я заранее извиняюсь, так как это очень загруженный вопрос, надеясь, что кто-то с достаточным опытом в этих типах сайтов может помочь. Спасибо.
Как я могу хранить столбец ac_adapter, battery, manuals в таблице заказов правильный способ сделать это?
Нет, потому что ac_adapter/battery/manuals являются атрибутами элемента, а не порядком. Если заказ возвращается, а последующее лицо заказывает элемент - вы дублировали данные по сравнению с одной записью в таблице items
.
И для тела электронной почты, как я бы сгенерировал это, присоединяем все столбцы, продиктованные номером заказа, и просто сделайте таблицу HTML из всего этого, включите дату.. это обычно как хранение электронной почты в базы данных?
Некоторые веб-клиенты не обрабатывают HTML-форматированный адрес электронной почты, это обычно оставляется для выбора пользователем между текстом и HTML.
Я бы не хранил электронную почту вообще - нет никакой ценности из автоматически созданного письма, созданного вашей системой. Я могу понять, как хранить шаблон в db, но адрес электронной почты не является надежным методом контактов, поэтому большинство из них было бы иметь столбец для указания статуса msg (будь то логический/бит или внешний ключ). Кроме того, зачем хранить то, что будет также сохранено в папке с отправленными вами электронными адресами?
ORDERS
действительно нуждается только в том, кто ее заказал, какие товары участвуют и сколько они стоят.