Разработка базы данных для ebay-подобных веб-приложений

0

Во-первых, этот сайт основан на гостях, которые заинтересованы в продаже своих товаров владельцу сайта, поэтому это не аукцион, как 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 из всего этого, включите дата.. это обычно, как делается сохранение электронной почты в базах данных?

Я заранее извиняюсь, так как это очень загруженный вопрос, надеясь, что кто-то с достаточным опытом в этих типах сайтов может помочь. Спасибо.

  • 0
    Вы можете легко проверить ваш дизайн БД с http // cakeapp.com.
Теги:
e-commerce
database-design
zend-framework

1 ответ

2
Лучший ответ

Как я могу хранить столбец ac_adapter, battery, manuals в таблице заказов правильный способ сделать это?

Нет, потому что ac_adapter/battery/manuals являются атрибутами элемента, а не порядком. Если заказ возвращается, а последующее лицо заказывает элемент - вы дублировали данные по сравнению с одной записью в таблице items.

И для тела электронной почты, как я бы сгенерировал это, присоединяем все столбцы, продиктованные номером заказа, и просто сделайте таблицу HTML из всего этого, включите дату.. это обычно как хранение электронной почты в базы данных?

Некоторые веб-клиенты не обрабатывают HTML-форматированный адрес электронной почты, это обычно оставляется для выбора пользователем между текстом и HTML.

Я бы не хранил электронную почту вообще - нет никакой ценности из автоматически созданного письма, созданного вашей системой. Я могу понять, как хранить шаблон в db, но адрес электронной почты не является надежным методом контактов, поэтому большинство из них было бы иметь столбец для указания статуса msg (будь то логический/бит или внешний ключ). Кроме того, зачем хранить то, что будет также сохранено в папке с отправленными вами электронными адресами?

  • 0
    Я ценю, что вы нашли время, чтобы ответить. Извините, я немного запутался в вашем ответе на первый вопрос, поэтому у меня будут эти атрибуты в виде столбцов элемента и значения NULL, а мой код на стороне сервера будет генерировать цену, основанную на ответах клиентов на атрибуты (есть ли у них руководство), единственное, что мне нужно хранить, это цена? Для сделки по электронной почте это был запрос клиента. Должен ли я сказать ему, что это невозможно? Я пытался сделать это больше похожим на сообщения Ebay, я думаю.
  • 0
    Что касается атрибутов товара / заказа - да, таблица ORDERS действительно нуждается только в том, кто ее заказал, какие товары участвуют и сколько они стоят.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню