Досвід має велике значення, але з точки зору дизайну столу ви можете багато чого навчитися з того, як працюють такі ORM, як "Зимова сплячка" та "Грааль", щоб зрозуміти, чому вони роблять щось. В додаток:
Тримайте різні типи даних окремо - не зберігайте адреси в таблиці замовлень, наприклад, посилання на адресу в окремій таблиці адрес.
Мені особисто подобається мати цілий чи довгий сурогатний ключ у кожній таблиці (який містить дані, а не ті, які пов'язують різні таблиці разом, наприклад, відносини m: n), що є первинним ключем.
Мені також подобається створити та змінити стовпчик часових позначок.
Переконайтесь, що кожен стовпець, який ви робите, "у якому стовпець = val" у будь-якому запиті, має індекс. Можливо, не найдосконаліший у світі індекс для типу даних, але принаймні індекс.
Налаштуйте свої закордонні ключі. Також встановіть правила ON DELETE та ON MODIFY, якщо це доречно, або для каскаду, або для встановлення нуля, залежно від вашої структури об'єкта (тому вам потрібно видалити лише один раз у "голівці" вашого об'єктного дерева, і всі суб'єкти цього об'єкта отримують видаляється автоматично).
Якщо ви хочете модулювати свій код, ви можете модулювати схему БД - наприклад, це область "замовники", це область "замовлення", і це "товари", і використовувати таблиці приєднання / посилання між ними, навіть якщо вони у відносинах 1: n, і, можливо, дублювати важливу інформацію (тобто дублювати назву продукту, код, ціну в таблиці замовлення_деталей). Прочитайте про нормалізацію.
Хтось інший порекомендує прямо протилежне для деяких або всього вищезазначеного: p - ніколи не єдиний справжній спосіб зробити якісь речі, е!