Аватар для Anett
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 8

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами

10.03.2013, 02:27. Показов 3829. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как нужно построить эти классы, чтобы получилась грамотная иерархия? Как вообще должен выглядеть класс связей между таблицами? Я долго билась над этим, но пока получился только трехмерный динамический массив. Вот код, я его забросила, очевидно, что это бред сивой кобылы. Будьте добры, направьте в правильное русло, я сама додуматься не могу... Если не сложно, напишите хотя-бы примерный код, а то мне совсем не понятно, что от меня требуется при создании этих классов. Заранее благодарю.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include "Lab3.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
class table //класс таблица
{
    char* tab; // таблица представляет собой трехмерный массив. Это необходимо 
    int N, M;          //т.к. сам скелет таблицы есть двумерный массив, но нужно чтобы
               // еще и кажда ячейка была массивом
public:
    
    void new_tab() // здесь создаем этот массив и шапку для таблицы
    {
        
        cout << "Введите количество строк и столбцов для таблицы" << endl;
        cin >> N >> M;
        char*** tab = new char **[N];
        for ( int i = 0; i < N; i++)
        {
            tab[i] = new char *[M];
        }
        for ( int i = 0; i < N; i++)
        {
            for ( int j = 0; j < M; j++)
            tab[i][j] = new char [10];
        }
        for ( int i = 0; i < M; i++)
            cin >> tab[0][i];
        for ( int i = 0; i < M; i++)
            cout << tab[0][i] << "  " ;
    };
    
    void fill() // не закончено
    {
        
    };
};
void main(void)
{
    system(" chcp 1251 > nul");
    table bd[100];
    bd[1].new_tab();
    system(" PAUSE");
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2013, 02:27
Ответы с готовыми решениями:

Отдельно класс данных, класс формул и главный класс
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Разбить на отдельный класс main, класс с шифрованием и дешифрованием (таблица двойной перестановки )
= &quot;&quot;; for(int i =0; i &lt; rowSize; i++) { for(int j = i; j &lt; EncryptedText.length(); j += rowSize) { tempStr +=...

3
8 / 8 / 6
Регистрация: 17.09.2012
Сообщений: 144
10.03.2013, 04:49
Вам в https://www.cyberforum.ru/cpp-beginners/
0
329 / 149 / 33
Регистрация: 29.06.2019
Сообщений: 1,429
23.05.2020, 05:34
Цитата Сообщение от Anett Посмотреть сообщение
Как вообще должен выглядеть класс связей между таблицами
связь - это Primary Key одной таблицы и Foreign Key другой таблицы, у связи есть тип, что ли, "один-к-одному","один-ко-многим","многие-ко-многим"... последний в итоге придётся нормализовывать до "многие-к-одному" и "один-ко-многим"... наверно, в этом классе вам больше ничего не пригодится...
Цитата Сообщение от Anett Посмотреть сообщение
Класс таблиц баз данных и класс записей в таблице(реляционная таблица)
записи - объекты одного класса,
таблица - агрегатный класс записей, в этом же классе можете и определить PK & FK для таблицы (т.е. для Отношения - выражаясь терминологией РБД)... и по сути 3-й класс вам вообще не нужен, т.к. PK & FK уже определены в классе таблица... смысла выделять их в дочерний класс - не вижу вообще...
имхо
(я бы делала так)
p.s.
тип связи нужен или не нужен - я бы ещё подумала... тут не знаю, стоит ли вводить в класс поле с такой инфо... или логически и так до такой инфо можно докодиться?.. - только не знаю, как и надо ли?
0
329 / 149 / 33
Регистрация: 29.06.2019
Сообщений: 1,429
25.05.2020, 12:31
Цитата Сообщение от JeyCi Посмотреть сообщение
связь - это Primary Key одной таблицы и Foreign Key другой таблицы,
всё-таки внесу уточнение:
PK - это, правильнее сказать, "идентификатор сущности"
сам FK - в ER-терминах и определяет связь (с PK др таблицы)...
Цитата Сообщение от Anett Посмотреть сообщение
Как вообще должен выглядеть класс связей между таблицами?
если оно вам надо отдельным классом, а не в рамках класса "сущности"... то так и вводите в конструктор - таблицу (от родителя можно пронаследовать) и названия полей PK и FK (virtual у родителя и переопределить у дочернего класса)... иные свойства и методы этого класса уже на ваше усмотрение по необходимости... даже не знаю, нужно ли что-то ещё... по-моему даже без доп. свойств и методов класс самодостаточен...- чтобы можно было между его объектами (или родителями объектов - если всё-таки будете выделять pk и fk в отдельный класс) устанавливать связи... имхо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.05.2020, 12:31
Помогаю со студенческими работами здесь

Класс: Разработать абстрактный класс класс Point для задания координаты...
Всем привет, помогите пожалуйста решить задачу, я уже всю голову сломал, не знаю как решить... Разработать абстрактный класс класс...

Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет
Неизвестная для меня проблема. Класс выводит данные правильно из Consigment, а вот третий экземпляр класса, работает не верно, если...

Перегрузил операцию преобразования типов данных (класс -> класс) но выскакивает ошибка компиляции
Здравствуйте, учил перегрузку операции преобразования типов данных, пробую объект SecondClass преобразовать в объект BasicClass. ...

Используя наследование, создать класс для обработки баз данных двух типов
Есть задание по полиморфизму: Используя свойство наследования создать класс для обработки баз данных двух типов. Создать по классу для...

Создать класс данных Person и класс отображения данных
Здравствуйте . Есть такое задание: Создать класс данных &lt;Data1&gt; и класс отображения данных - &lt;view1&gt;. Объект отображения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Обнаружение объектов в реальном времени на Python с YOLO и OpenCV
AI_Generated 29.04.2025
Компьютерное зрение — одна из самых динамично развивающихся областей искусственного интеллекта. В нашем мире, где визуальная информация стала доминирующим способом коммуникации, способность машин. . .
Эффективные парсеры и токенизаторы строк на C#
UnmanagedCoder 29.04.2025
Обработка текстовых данных — частая задача в программировании, с которой сталкивается почти каждый разработчик. Парсеры и токенизаторы составляют основу множества современных приложений: от. . .
C++ в XXI веке - Эволюция языка и взгляд Бьярне Страуструпа
bytestream 29.04.2025
C++ существует уже более 45 лет с момента его первоначальной концепции. Как и было задумано, он эволюционировал, отвечая на новые вызовы, но многие разработчики продолжают использовать C++ так, будто. . .
Слабые указатели в Go: управление памятью и предотвращение утечек ресурсов
golander 29.04.2025
Управление памятью — один из краеугольных камней разработки высоконагруженных приложений. Го (Go) занимает уникальную нишу в этом вопросе, предоставляя разработчикам автоматическое управление памятью. . .
Разработка кастомных расширений для компилятора C++
NullReferenced 29.04.2025
Создание кастомных расширений для компиляторов C++ — инструмент оптимизации кода, внедрения новых языковых функций и автоматизации задач. Многие разработчики недооценивают гибкость современных. . .
Гайд по обработке исключений в C#
stackOverflow 29.04.2025
Разработка надёжного программного обеспечения невозможна без грамотной обработки исключительных ситуаций. Любая программа, независимо от её размера и сложности, может столкнуться с непредвиденными. . .
Создаем RESTful API с Laravel
Jason-Webb 28.04.2025
REST (Representational State Transfer) — это архитектурный стиль, который определяет набор принципов для создания веб-сервисов. Этот подход к построению API стал стандартом де-факто в современной. . .
Дженерики в C# - продвинутые техники
stackOverflow 28.04.2025
История дженериков началась с простой идеи — создать механизм для разработки типобезопасного кода без потери производительности. До их появления программисты использовали неуклюжие преобразования. . .
Тестирование в Python: PyTest, Mock и лучшие практики TDD
py-thonny 28.04.2025
Тестирование кода играет весомую роль в жизненном цикле разработки программного обеспечения. Для разработчиков Python существует богатый выбор инструментов, позволяющих создавать надёжные и. . .
Работа с PDF в Java с iText
Javaican 28.04.2025
Среди всех форматов PDF (Portable Document Format) заслуженно занимает особое место. Этот формат, созданный компанией Adobe, превратился в универсальный стандарт для обмена документами, не зависящий. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru