2017-02-23 32 views
0

Я довольно новичок в программировании, программировал только около четырех-шести месяцев.Array/Список для реализации СУБД (Java)

Я хочу найти способ создания таблиц в java и иметь методы для объединения двух разных таблиц и, возможно, с предложениями (аналогичные SQL). Я понимаю, что существует определенная библиотека, которая может выполнить эту работу, но я хочу реализовать ее самостоятельно. Я хочу иметь возможность поддерживать столбцы типов string и int.

В качестве отправной точки я думал о представлении своих данных в виде набора строк. Первоначально я думал о создании класса столбцов, но с тем, как я хочу присоединиться к работе (похоже на SQL), это кажется головной болью и ненужным.

Учитывая, что я хочу использовать списки/массивы, будет ли сбор строк хорошей идеей? Кроме того, если я делаю что-то вроде String [] [] и хочу иметь столбец int, как я могу это сделать?

Благодаря

+0

Возможно, вы не должны пытаться делать таблицы в своем Java-коде. Это то, к чему подходит ваша база данных, и именно поэтому были созданы базы данных. Если вам нужно представить запись в вашем Java-коде, тогда 'Object []' будет самым простым способом сделать это. Тем временем попытайтесь, если это возможно, сузить свой вопрос. –

+0

@TimBiegeleisen «Это то, для чего подходит ваша база данных, и именно поэтому были созданы базы данных». Похоже, это то, что он хочет создать. – marstran

+0

Ну, я хочу поддерживать естественное внутреннее соединение двух таблиц, учитывая, что единственными типами столбцов являются строки и int. Я не имею в виду, что колонка строки может содержать int и наоборот, просто, чтобы таблица могла иметь строковые столбцы и столбцы int. Поэтому, чтобы лучше задать свой вопрос, как я могу реализовать это, используя только массивы/списки? –

ответ

0

Я думаю, решить, следует ли использовать ArrayList или Object [] будет наименьшим из ваших проблем. Однако, если мы предположим, что количество столбцов неизменно для каждой таблицы, тогда имеет смысл хранить внутреннюю строку как Object[] и, конечно же, обернуто разумным объектом Row, предоставляющим полезные методы. Затем, поскольку строки могут быть вставлены и удалены, имеет смысл хранить их внутри себя как List<Row>, завернутый, конечно, с помощью разумного объекта Table.

+0

Вы имеете в виду количество столбцов неизменных, как в pre join? Если да, то да. Хотя я хотел бы поддержать что-то вроде таблицы Z1, есть столбец A и B. Таблица Z2 имеет столбцы A и C. Затем декартово произведение таблиц вернет таблицу, в которой размер вполне может отличаться от A, B или C –

+0

@JohnFang Как я уже сказал, решение о том, какие внутренние структуры данных использовать, является наименьшей из ваших проблем. Не обижайтесь, но я думаю, что вы выбрали слишком сложный проект для вашего нынешнего уровня мастерства. И никто здесь не собирается писать для вас шаг за шагом. –